/* 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(); Diario de una fashionista - Perfiles, Personajes - Revista ASIA SUR

Diario de una fashionista

Por Ornella Palumbo / Fotos de Alonso Molina
Hace cinco años la periodista Lorena Salmón abrió un blog de modas como hobbie. Hoy es un negocio propio que va camino a los 50 mil seguidores. Su nombre en el mundo de la moda se ha vuelto omnipresente: figura en todas las redes sociales, columnista de opinión en un diario, conductora de un programa de TV, el nombre que las grandes marcas no paran de llamar. La fashion blogger más importante del Perú, sin emabrgo se considera solo una mujer que busca el equilibrio, su lado zen. Jura que no es nada fácil conseguirlo.
lorena1

Si la vida fuera un clóset, Lorena Salmón tendría colgada en cada percha una aventura: yoga, kung fu, surf, acupuntura, un salto al vacío laboral, media maratón en San Francisco, sesiones de biomagnetismo y terapias sacro craneales para combatir el estrés. Y es que hay algo que no deja de agitarse en el interior de esta fashionista del ciberespacio que inicia su quinto año al mando de su blog [www.fashionjolik.com] con casi 46 mil seguidores repartidos en Facebook, Twitter, Instagram y Pinterest; y que además estrena columna de opinión en el diario más importante del Perú. Lorena Salmón está en todas, pero busca más. Busca, sobre todo, el equilibrio.

«Cuando me he cansado de la moda y he querido mandar todo al demonio, he pensado dedicarme al yoga. Es mi otro camino», dice ahora la fashionista –32 años, casada, madre de dos hijos–, desde su sala, llevando un delicado vestido azul marino y unas sandalias de plataforma color camello, que poco tienen que ver con la mujer descalza y en ropa deportiva que aparece realizando contorsiones imposibles en una de las últimas publicaciones de su blog.

Lorena Salmón practica yoga desde hace una década y desde esa fecha se ve a sí misma de otra manera. «Todo el rato pensaba que me iba a morir de alguna enfermedad y no tenía esperanza porque había mucho en lo que no creía. Entonces me enganché con esto de ‘el poder de ti mismo’ y cuán importante es ser positivo en la vida», recuerda la blogger, quien al principio se resistía a participar de cualquier cosa que pudiera sonar a autoayuda hasta que conoció el ayurveda, un sistema de medicina tradicional de la India. Según los patrones de temperamento del ayurveda, Lorena Salmón pertenece al grupo Vata, es decir, la energía que predomina en ella es la del aire, es enérgica y tiende a exaltarse. Para lograr estabilidad y calma le conviene consumir alimentos calientes como sopas, té de hierbas y leche; y no debe someterse a rutinas muy intensas. «Tampoco se debe juzgar nunca. Nunca hablar mal de nadie. Hay toda una simbiosis con los diez mandamientos: no hagas lo que no te gustaría que te hicieran», sonríe Lorena, quien ahora es maestra de yoga. Desde que ha integrado estos preceptos a su vida, dice, sus males ficticios se han ido de vacaciones. El lado hiperactivo y el lado zen de Lorena Salmón han aprendido por fin a convivir, aunque no le ha sido fácil conseguirlo.

lorena2


Mucho antes de su fashion blog y el yoga, Lorena Salmón era la niña chancona de la clase. Primera en el colegio, primera en la universidad, competitiva hasta su última célula y totalmente ajena a la euforia por los trapos. Entonces era solo una estudiante de periodismo de la UPC que vestía Converse, jeans y que no tenía la más remota idea de cómo maquillarse. Incluso sus amigos le decían ‘niño’ por lo corto que llevaba el pelo. Hasta que una noche, en las bodas de plata de sus padres, Lorena dejó boquiabiertos a todos con su look: llegó a la fiesta con un cortísimo vestido strapless color hueso y un par de tacones morados número doce. Desde aquella vez nada fue lo mismo. Lorena empezó a vestir ropa con la que se sentía sexy y cómoda al mismo tiempo. La aventura que ella colgaría en la primera percha de su clóset sería, precisamente, aquella brillante locura de vivir de la moda. Pero aún no lo sabía.

Su primer encuentro con una editorial de moda fue en la revista Somos, donde reescribió los textos que acompañaban a las fotos. Luego fue redactora creativa en una conocida empresa de cosméticos, donde solía escribír tarjetas de cumpleaños y de Navidad. Lorena, por supuesto, no aguantó mucho. «El trabajo me aburría. Sentía que tenía demasiado tiempo libre. Luego empecé a ver todos estos blogs de moda y dije, bueno, haré uno. Y lo hice». Llamó a un antiguo contacto y consiguió un espacio en la web de El Comercio. No ganaba un sol con ello ni tenía muchas espectativas, hasta que empezó a colgar fotos de sí misma luciendo nuevos looks. El blog creado en el 2008 alcanzó pronto las 70 mil visitas diarias. Lorena vio entonces la oportunidad de transformar ese pasatiempo en negocio. Saltó a la nada dejando atrás sueldo, seguro de vida, CTS y el cómodo horario de oficina, compró el dominio de internet fashionjolik.com e hizo varios trabajos para otros medios antes que de que su página pudiera sostenerse sola.

Lo que vino luego –y pronto– fue un fenómeno en términos empresariales. Gigantescas marcas de productos de belleza y centros comerciales la buscaron a ella, a ‘la blogger de modas, para anunciar en su página, ofreciendo hasta seiscientos dólares por un pedacito de su pantalla. Ella solo escoge aquellas marcas con las que se identifica. Hoy su blog es un negocio sostenible del que podría –puede– vivir tranquila y feliz. Suena fácil, dice Lorena, pero no lo ha sido. «En verdad tienes que tocar la puerta. Eso es lo que fácil la gente no sabe».

lorena3


Lorena Salmón hace y viste lo que le provoca en su blog: vestidos de hilo, a rayas, con mallas rojas y botines, con chullo, con una cartera de alguna clase de mimbre tejido con forma de pollo, y siempre lucirá bien. Pero no es una compradora compulsiva ni la fascinan las tendencias. Solo la entusiasman los sombreros. Tiene decenas y puede usar uno mismo los treinta días del mes. A veces también publica noticias atrevidas. Ha escrito, por ejemplo, sobre los belfies, aquellos retratos que las celebridades les hacen a sus propios traseros y que luego popularizan por la red. «Me gusta encontrar una noticia divertida, hay que reírse también. La gente es tan seria». Pero también sabe que los seguidores pueden convertirlas en ídolos o destruirlas. La primera veces que publicó fotos suyas tuvo miedo. De hecho, no han faltado comentarios e insultos por lo delgada que se ve. «Al principio me dolía un montón. Para colmo no te puedes picar porque es mil veces peor», dice Lorena, quien ha aprendido a controlarse con el tiempo, aunque en un mal día le provoque mandar al diablo a alguno que otro hater.

Aunque se considera algo dispersa y floja, Lorena empieza su día muy temprano revisando blogs de otros países y husmeando en los programas de chismes. Parecen inútiles, dice, siempre terminan mostrando prendas y combinaciones que se convierten en tendencias.

Por estos días escribe una columna para la edición dominical de un diario, graba un videoblog para el centro comercial más grande de Lima, conduce DIARIO DE UN ARMARIO [su programa de TV de una hora] y acaba de terminar un trabajo como blogger-corresponsal para Benetton Latinoamérica. Aun así, dice, no se considera una experta. Cada vez hay más fashion bloggers en el país. Se reproducen por miles y hay que saber competir. «Chicas con diferentes fisonomías, no necesariamente flacas y altas, se lanzan y tienen sus seguidores. Hay público para todos», dice, con la tranquilidad que le ha dado la experiencia.

La puerta de su sala se abre. Su esposo y sus dos hijos acaban de llegar de jugar. Lorena Salmón tiene tatuados los nombres de ellos y el número 25 al lado de un corazón, porque los dos nacieron el mismo día. También se tatuó un salmón. El mayor, de ocho años, corre a abrazarla y le pregunta por su primera clase de yoga. Lorena sonríe. La fashion blogger más importante del país dice que su familia es quien la empuja a lograr otro sueño: la marca propia. En tanto, el equilibrio se repone en su casa hasta que ese nuevo reto se cuele en su clóset.