Buah, siempre se dice que el tiempo pasa volando, pero es que es verdad. Parece que fue ayer cuando decidí comenzar a escribir en este blog, y hoy hace 18 años de eso. ¡El blog ya es mayor de edad! 🎉
Cuando empecé a escribir por aquí, aún bajo el dominio de Blogger jmaguilar.blogspot.com y con un nombre ligeramente más largo (Variable not found, 0:1, como homenaje a mi querido ZX Spectrum), Windows XP aún llenaba de color las pantallas de nuestros vetustos PC, aunque empezábamos a oír hablar de un nuevo sistema operativo llamado Windows Vista.
Programábamos aplicaciones ASP.NET 2.0 en Visual Studio 2005, usando un C# que apenas acababa de incorporar el soporte para generics o tipos anulables, y las desplegábamos por FPT a hostings o servidores on-premise, porque las nubes eran simplemente algo con formas caprichosas que veíamos en el cielo.
Los teléfonos móviles no eran nada inteligentes, eso de los smartphones llegó más tarde. En aquellos tiempos estos dispositivos sólo servían para hacer llamadas y enviar SMS. A lo sumo, podíamos jugar al Snake, pero poco más. Nada que ver con los dispositivos que llevamos en el bolsillo en este momento, ni las herramientas que éstos han propiciado.
El código fuente de los proyectos lo guardábamos donde podíamos, muchas veces incluso sin usar sistema de gestión de código o control de versiones, o utilizando herramientas poco amigables (¿alguien tiene todavía pesadillas con Source Safe? 😉)
Internet era muy distinto. Aunque las ADSL ya habían llegado a muchos hogares, la velocidad de conexión era mucho menor que la que disfrutamos ahora. Servicios, que ahora son indispensables para nuestro trabajo, como Stack Overflow o GitHub aún no existían, como tampoco (o estaban muy en pañales) las redes y aplicaciones sociales que hoy en día nos mantienen informados y en contacto, como Twitter (creo que nunca me acostumbraré a llamarlo "X" 🤦♂️), Instagram, Facebook, WhatsApp, Youtube, Twitch o TikTok.
Y por supuesto, esto de la inteligencia artificial tal y como la estamos conociendo en este momento era absolutamente impensable. Los que no trabajábamos en ese campo, apenas empezábamos a oír hablar de cosas como el machine learning o redes neuronales, y no tenían aplicación en aplicaciones, digamos, "normales".
Las cosas han cambiado mucho desde entonces, pero una sigue igual: mi pasión por la tecnología y por compartir lo que voy aprendiendo siguen intactos. Por eso, aunque a veces cueste encontrar tiempo para escribir, sigo aquí, en este rincón de la red, compartiendo con vosotros lo que voy aprendiendo, lo que me parece interesante o lo que creo que puede ser útil para alguien.
Pero todos es gracias a vosotros, esa pequeña pero fiel pandilla de amigos que me lee, me comenta y me anima a seguir adelante. ¡Muchas gracias a todos!
Y como todos los años por estas fechas, vamos a hacer balance de cómo han ido las cosas en el blog, que ya os adelanto que regular 😔
Publicado por José M. Aguilar a las 8:05 a. m.
Etiquetas: aniversario, autobombo, blogging
El 8 de mayo de 2006 decidí subir a un tren, teniendo más o menos clara la dirección, pero sin saber en qué parada me bajaría.
Cuando en aquél post inicial decía literalmente "espero que el viaje sea largo", probablemente no me refería a tan largo. Aún con la tenacidad de la que hacía gala, era imposible imaginar que diecisiete años después seguiría por aquí, contemplando el paisaje y escribiendo sobre lo que veo, intentando contribuir a una comunidad a la que tanto debo.
Más de 1.430 posts, más de 3.000 comentarios de lectores, más de cinco millones de consultas... pero sobre todo, muchísimo aprendido por el camino y, con suerte, espero que no solo por mi parte 😉
Hace unos días, Variable Not Found cumplió dieciséis añitos de vida, una eternidad para este mundo en el que vivimos, donde todo ocurre tan rápido y las cosas cambian a una velocidad de vértigo 😊.
Dieciséis años viviendo algo único. Cada uno de los 1.350 artículos publicados ha sido para mí una increíble oportunidad de mejora y aprendizaje y, con suerte, espero (y confío) haber podido ayudar a alguno de los muchísimos visitantes que durante este periodo han pasado por aquí y me han animado a seguir en la brecha.
Dieciséis años creciendo juntos. Comencé esta aventura con más pelo, mejor vista y bastante menos canas, pero la ilusión de poder escribir sobre lo que me gusta, con el plus de que esto pudiera ser útil para alguien, sigue intacta.
Pero bah, dejémonos de historias sentimentales... como es tradición, veamos cómo ha funcionado el blog durante este año.
Pues sí, que se dice pronto, pero hace unos días Variable Not Found cumplió quince años y, como cada aniversario, no quería faltar a la tradición de celebrarlo con vosotros.
Unas 800 semanas, 5.600 días (exceptuando vacaciones, que también las hay), intentando volcar por aquí parte de lo que voy viendo o descubriendo sobre esta profesión que tanto nos gusta. Esto ha dado para cerca de 1300 posts, que han sido consultados más de cuatro millones y medio de veces, y que cuentan con seguidores de todo el mundo, y seguimos fieles los mismos objetivos: aprender y echar una mano al que por aquí se acerque.
Y como de costumbre, aprovecharemos para comentar un poco qué tal fueron las cosas por aquí los últimos 365 días.
Durante todo este tiempo, el blog ha formado parte de mi vida, y quiero creer que de algunas de las vuestras, aunque sea a pequeña escala. Esos minutillos que echáis los lunes para hacer vuestra propia selección de mis enlaces interesantes, cuando llegáis a él buscando cualquier asunto en Google, las veces que comentáis los contenidos, o cuando contactáis conmigo gracias a esta pequeña ventana en la red son la gasolina que hace que este motor que siga funcionando como el primer día.
Y es que después de 1.200 posts, más de mil comentarios y superando holgadamente los cuatro millones de páginas servidas, creo que aún nos queda combustible para rato. Sigo disfrutando de plasmar por aquí lo que voy aprendiendo, y de poder aportar un pequeño granito de arena a la comunidad ayudando a alguien de vez en cuando :)
Tradicionalmente aprovecho el cumpleaños del blog para echar un vistazo atrás y analizar cómo ha ido la cosa, así que allá vamos...
Y hasta aquí la píldora cultural del día, ahora vamos a lo importante :D
Publicado por José M. Aguilar a las 8:15 a. m.
Etiquetas: aniversario, autobombo, sponsored, variablenotfound
Mucho han cambiado las cosas desde 2006. Por aquellos tiempos, Windows XP campaba a sus anchas en los equipos de escritorio. Usábamos Visual Studio 2005 para programar aplicaciones .NET Framework 2.0, usando un C# en el que se acababan de incorporar características novedosas como los tipos genéricos, nullables, o los data tables. No teníamos smartphones, simplemente teléfonos móviles. Han cambiado muchas cosas, pero una sigue intacta: las ganas de seguir aprendiendo y compartir por aquí lo que pienso que puede ayudar a otros.
Mil y pico entradas después de aquél mayo de 2006, y tras recibir a más de dos millones de visitantes, no puedo más que seguir agradeciéndoos el apoyo que me habéis dado desde entonces con vuestras visitas, vuestros comentarios y sugerencias para mejorar. Muchas gracias a todos.
Publicado por José M. Aguilar a las 8:55 a. m.
Etiquetas: aniversario, autobombo, variablenotfound.com
Once años dan para mucho, la verdad. Superamos ya las novecientas cincuenta publicaciones, más de 2.300 comentarios y 2,7 millones de páginas vistas según Blogger, cifras que van mucho más allá de lo que habría firmado sin dudarlo aquél mayo de 2006 cuando empezó este viaje.
Un viaje que no tiene destino ni fecha de finalización: el único objetivo es disfrutar del camino, que os puedo asegurar que lo estoy haciendo, y echar una manita a los compañeros de profesión y afición que anden buscando información o soluciones a problemas con las que yo me haya topado antes. ¿Hay algo más gratificante que esto?
Y hoy el algoritmo cuasimágico de generación de números pseudoaleatorios ha determinado que los ganadores son:
Ibai Imaz @ibaiimaz Euskal Herria | ||
L. Alberto Baigorria @uialberto Santa Cruz de la Sierra, Bolivia |
Y así, damos por finalizada la ronda de sorteos por la celebración del décimo aniversario del blog. Al comenzar esta iniciativa quería que fuera algo grande y espero haber conseguido al menos un poco de dicho objetivo: todos os habéis llevado un libro de O'Reilly, muchos de vosotros conseguisteis grandes premios, pero lo más importante es que con todo esto espero haber sido capaz de transmitiros mi agradecimiento por estar siempre ahí, ayudándome a encontrar la variable.
Venga, ¡a por los próximos diez años!
Publicado en Variable not found
Personalmente le tengo bastante aprecio a estos chicos desde que conocí su popular Resharper, una herramienta que uso a diario desde hace años, por lo que no dudé en contactar con ellos y, por supuesto, se ofrecieron amablemente a colaborar en la celebración.
Y gracias a ello, hoy sorteamos dos suscripciones a Resharper Ultimate, la suite de productos que incluye:
- Resharper para .NET. Indispensable. Creedme, una vez lo probéis os haréis adictos ;)
- Resharper para C++.
- DotTrace el profiler de rendimiento para .NET
- DotMemory, un profiler de memoria para aplicaciones .NET
- DotCover, runner de pruebas unitarias y control de cobertura de código
- DotPeek, el descompilador para.NET (que por cierto, de todas formas es gratuito y podéis descargar desde su página).
Pues casi ha pasado un mes desde que lanzamos esta iniciativa, y ya se cuentan por centenares los seguidores de Variable not found que han descargado su libro electrónico de O'Reilly, totalmente gratis.
Sólo quería recordaros que la promoción finaliza el próximo 30 de junio (no sé si ese día aún se podrá, así que, por si acaso, mejor que asumáis que no).
Por si no os enterasteis en su momento, estamos hablando de que para celebrar el aniversario del blog, O'Reilly regala a todos los lectores un libro en formato electrónico, a elegir entre estos diez títulos de programación, o un vídeo-tutorial sobre Web API:
Mastering Cross-Platform Development with Xamarin By Can Bilgin Más info | C# 6 and .NET Core 1.0: Modern Cross-Platform Development By Mark J. Price Más info | ||
jQuery Essentials By Troy Miles Más info | C# 6.0 in a Nutshell, Sixth Edition By Joseph Albahari & Ben Albahari Más info | ||
CSS: The Missing Manual, Fourth Edition By David Sawyer McFarland Más info | Learning NHibernate 4 By Suhas Chatekar Más info | ||
Learning .NET High-performance Programming By Antonio Esposito Más info | Code-First Development with Entity Framework By Sergey Barskiy Más info | ||
AngularJS: Up and Running By Shyam Seshadri, Brad Green Más info | Concurrency in C# Cookbook By Stephen Cleary Más info | ||
Vídeo (2h): RESTful Services with ASP.NET Web API By Fanie Reynders Más info |
Además, O'Reilly ofrece a los lectores de Variable not found descuentos del 40% en libros en papel, y de 50% en libros electrónicos y video training utilizando el código PCVW al realizar la compra.
¿Y cómo podéis conseguir vuestro regalo?
Recordad que tenéis hasta el próximo 29 de junio de 2016 para obtener vuestro regalo. Sólo tenéis que lo siguiente:- Ayudarme a difundirlo para darle el mayor alcance posible, pues estaréis contribuyendo a que más personas puedan conseguir su regalo. Por tanto, os agradecería mucho:
- Que lo comentéis con vuestros compañeros, amigos y conocidos que aún no se hayan beneficiado de esta iniciativa.
- Que publiquéis en vuestra cuenta de Twitter, Facebook u otras redes sociales un enlace hacia este post. Por ejemplo, estaría bien algo como lo siguiente, aunque podéis demostrar vuestra creatividad y poner otras cosas siempre que vayan en la dirección de los objetivos propuestos :)
Sólo HOY, @oreillymedia te regala un e-book por ser seguidor de @variablnotfound. ¡Ve a por el tuyo! http://bit.ly/295LSAJ
- O, como mínimo, para los más perezosos, que retuiteéis en Twitter o compartáis en vuestras redes sociales los mensajes de otras personas que ya lo hayan publicado.
- Que lo comentéis con vuestros compañeros, amigos y conocidos que aún no se hayan beneficiado de esta iniciativa.
- Si os apetece estar informados de las novedades del blog, seguir la nueva cuenta del blog en Twitter, @variablnotfound. A largo plazo pretendo que sea un canal exclusivo para el blog, separándolo de mi cuenta personal @jmaguilar.
- Finalmente, reclamar vuestro libro o vídeo utilizando este enlace: http://oreil.ly/1W9VAFL. El proceso es muy simple: tendréis que registraros como usuario, elegir el contenido que os interese (uno por persona), y en pocas horas tendréis acceso al mismo.
Publicado en Variable not found
Así que, siguiendo la tradición, nos hemos reunido un servidor y su habitual instancia de System.Random para echar en el bombo las papeletas virtuales y elegir al azar los ganadores del sorteo de licencias de la suite DevCraft Complete de Telerik.
Y hoy la suerte ha señalado a:
Carlos Gómez @devcfgc Bilbao | ||
Luis Felipe Gil @lamaslg Madrid |
Me gustaría agradecer también a Telerik su gran apoyo a la celebración del aniversario del blog, que ha sido espectacular.
Ah, y mientras comenzamos el próximo sorteo, no olvidéis que por ser lectores del blog ¡aún podéis conseguir vuestro libro gratis de O'Reilly! Daos prisa porque el tiempo se acaba y en breve acabará la promoción :)
Pero seguid atentos al blog, porque el próximo será ya el último sorteo… ¿alguien había dicho que le gustaría tener una licencia de Resharper? ;)
Publicado en Variable not found
Y es que, aunque actualmente abarcan todo tipo de plataformas y tecnologías, la gran reputación conseguida durante años, sus decenas de reconocimientos y su compromiso con la comunidad .NET han hecho de esta empresa un referente para nosotros. ¿Quién no conoce Fiddler, JustDecompile, Kendo UI, o sus componentes visuales para MVC, por citar sólo algunos de sus productos?
Pues efectivamente, Telerik ha sido otra de las compañías que han decidido apoyar generosamente la celebración del décimo aniversario del blog, ofreciendo para sus lectores dos licencias de la suite DevCraft Complete, valoradas cada una en 1.499$.
Y la suerte ha señalado a:
DevExtreme Complete Luis A. Sánchez @luisxkimo Madrid | ||
Componentes ASP.NET Eloy Ortiz @_eloyortiz Baena (Córdoba) |
¡Enhorabuena a los ganadores! En breve me pondré con contacto con vosotros para indicaros los próximos pasos a dar para obtener vuestras licencias. Y muchas gracias a los que no habéis tenido tanta suerte, pero no desesperéis que todavía tendréis más oportunidades :)
Muchas gracias también al patrocinador, DevExpress, por su apoyo a la celebración del décimo aniversario del blog y por ponerlo todo tan fácil. Si sois desarrolladores no dejéis de echar un vistazo a sus productos, porque tienen cosas que seguro os pueden interesar en algún momento :)
Ah, y mientras comenzamos el próximo sorteo, no olvidéis que por ser lectores del blog ¡aún podéis conseguir vuestro libro gratis de O'Reilly! Daos prisa porque el tiempo se acaba y en breve acabará la promoción :)
Y atentos al blog, porque en breve volvemos sorteando más regalos… ¿qué os parecería ahora algo de Telerik? ;)
Publicado en Variable not found
Tras ponerme en contacto con ellos, les entusiasmó la idea de la celebración del décimo aniversario de Variable not found e inmediatamente ofrecieron para sortear entre los lectores del blog:
- Una subscripción ASP.NET, valorada en casi 900$, que incluye componentes para ASP.NET Web Forms, extensiones para ASP.NET MVC, sistema de reporting y algunos otros extras.
- Una suscripción DevExtreme Complete, valorada en cerca de 500$, que incluye los siguientes productos:
- DevExtreme Web, widgets javascript/HTML5 de alto rendimiento para aplicaciones web, entre los que se incluyen Grids, Pivots, Charts, Forms, Calendar, etc.
- DevExtreme Mobile, un framework Javascript/HTML5 optimizado para la creación de aplicaciones móviles con look&feel nativo para las principales plataformas, soporte touch, componentes de visualización, etc.
- DevExtreme Web, widgets javascript/HTML5 de alto rendimiento para aplicaciones web, entre los que se incluyen Grids, Pivots, Charts, Forms, Calendar, etc.
Y los afortunados han sido:
Raul Carbonell @RaulCarbonell81 Sant Quirze del Vallès (Barcelona) | ||
Jaime de Aquino @deaquino Sevilla | ||
Edgar Ricárdez @ericardezp Coahuila de Zaragoza, México |
¡Enhorabuena! En breve me pondré en contacto con vosotros para concretar cómo podéis obtener vuestro premio :)
Y para los que no habéis tenido suerte, muchas gracias por participar :) Pero no desesperéis y estad atentos al blog que en un par de días volvemos, ¡¡esta vez repartiendo componentes de DevExpress!!
Ah, y no olvidéis que por ser lectores del blog ¡aún podéis conseguir vuestro libro gratis de O'Reilly!
Publicado en Variable not found
Con este sorteo que iniciamos hoy, comenzamos una serie en la que repartiremos herramientas para desarrolladores que os ayudarán a ser más productivos y mejorar la calidad de vuestras aplicaciones :)
Seguro que os suena Grapecity, la compañía que hay por detrás de componentes y herramientas de gran reputación como ComponentOne, Wijmo o ActiveReports. Pues tras ponerme en contacto con ellos para hablarles del décimo aniversario del blog, se ofrecieron amablemente para apoyar la celebración cediendo tres licencias completas de sus productos.
Para que os hagáis una idea del volumen de la apuesta, deciros que se trata en todo caso de productos comerciales cuyos importes pueden llegar a superar los 1.000 dólares cada uno ¡Uau! :)
And the winner iiiiiis… momentos de emoción... redoble de tambores…
Adrián López @aldacosta Santiago de Compostela (Spain) |
¡Enhorabuena, Adrián! En breve nos pondremos en contacto contigo y te daremos instrucciones para comenzar a disfrutar del premio cuanto antes :)
Muchas gracias a todos por participar, y por supuesto, a CampusMVP por el gran apoyo prestado en los preparativos y difusión de esta iniciativa.
Y chicos, estad atentos porque esto no acaba aquí, y en un par de días comenzamos un nuevo sorteo :) Mientras tanto, daos prisa si aún no habéis descargado vuestro libro de regalo de O'Reilly, que van quedando pocas semanas para el cierre!
Publicado en Variable not found
Publicado por José M. Aguilar a las 11:34 a. m.
Etiquetas: aniversario, aspnetmvc, campusmvp, sorteo
Cuando empecé a plantearme organizar la celebración del décimo aniversario del blog siempre tuve claro que si lo hacía tenía que ser a lo grande, proporcional a mi gratitud por vuestros años de apoyo, y esto sólo podía hacerlo consiguiendo que me acompañaran los más grandes. Y empecé a contactar con las principales compañías relacionadas con nuestro sector.
Como no podía ser de otra forma, los chicos de CampusMVP fueron los primeros en sumarse a la iniciativa aportando una suscripción a su popularísimo curso de Desarrollo Web con ASP.NET MVC, del que tengo el honor de ser autor y tutor desde hace más de cinco años.
El curso, valorado en cerca de 500 euros, se desarrolla completamente online y tiene una duración de 3 meses, durante los cuales se tiene acceso a un completo temario que recorre todos los aspectos del framework MVC, vídeos, prácticas y ejercicios que conseguirán que dominéis la materia, además de tenerme a vuestra disposición para solucionar dudas sobre el temario. Al finalizar obtendréis un certificado que acreditará vuestra participación y que os puede resultar muy interesante desde el punto de vista profesional. Es, sin duda, de lo mejorcito que podéis encontrar en el mercado para aprender ASP.NET MVC (hey, que no lo digo yo que soy el padre, sino los cientos de alumnos que ya lo han hecho ;D).
Podéis ver más detalles del curso en su página oficial.
A continuación podéis ver las reglas para participar en el sorteo, pero, antes de entrar en materia, me gustaría recordaros que CampusMVP, líder en formación online en español, está continuamente ofreciendo información y recursos a la comunidad de desarrolladores a través de @campusMVP en Twitter, de su blog, su boletín electrónico mensual, y publicaciones electrónicas gratuitas. En este momento, por ejemplo, podéis descargar gratuitamente el libro en PDF “20 Consejos imprescindibles para programadores de C# y .NET”, más de 80 páginas de conocimiento concentrado sobre nuestro lenguaje favorito :)
¿Y cómo participo en el sorteo?
La forma de participar en este sorteo es muy parecida a la que utilizamos con los libros de SignalR semanas atrás, por lo que los méritos que hicisteis entonces os valdrán para participar también en este sorteo, pero introduciremos algunas leves variaciones.Los que estéis interesados en participar sólo tenéis que conseguir "papeletas"; cada uno de vosotros podéis conseguir hasta cinco papeletas, dependiendo del grado de afinidad que mostréis con Variable not found y con nuestro patrocinador ;D Obviamente, cuantas más papeletas tengáis más probabilidades tendréis de ganar el premio.
- Para conseguir la papeleta que os da derecho a participar en el sorteo sólo tenéis que escribir un comentario en este post del blog, el que queráis. Podéis aprovechar para contarme por qué queréis aprender MVC, o por qué consideráis que debería tocaros a vosotros el premio, o qué podríais ofrecerme a cambio de trucar el resultado y dároslo directamente ;D El caso es comentar algo, lo que sea. Y sobre todo incluid alguna vía para que pueda contactaros si sois los afortunados (preferiblemente email, pero también podría ser twitter o la dirección de vuestro perfil de facebook).
Ojo: si incluís el email en el comentario, usad alguna forma creativa de ocultarlo a los rastreadores para que no os frían a spam. Por ejemplo, "pedroperez en ge mail punto com", o "com gmail arroba joselito".
- Si queréis una papeleta extra y, por tanto, más posibilidades de ganar, podéis seguir la nueva cuenta en twitter del blog, @variablnotfound e incluir en el texto del comentario anterior los caracteres "+TW1".
- Obtendréis una papeleta adicional si seguís la página del blog en Facebook y añadís al comentario el texto "+FB".
- Conseguiréis otra papeleta extra si seguís mi cuenta habitual de Twitter @jmaguilar. En este caso, debéis añadir al comentario el texto "+TW2".
- Y si queréis una última papeleta, aseguraos de seguir en Twitter a @campusMVP, añadiendo el texto “+CAMPUSMVP” al comentario en el blog.
Hola, soy Manolito, me gustaría aprender ASP.NET MVC porque es lo que mi abuela siempre ha querido para mi. Y porque tengo un jamón en el almacén que no sé qué hacer con él, así que ya sabes ;DNo olvidéis incluir en el comentario los textos "+TW1", "+TW2", "+FB" o “+CAMPUSMVP” para indicar los perfiles a los que seguís, pues tengo automatizado el proceso del sorteo y las papeletas se asignarán automáticamente en función de estas pistas incluidas en el comentario ;) Y aseguraos de que lo que indicáis es cierto, porque de no ser así seréis descalificados!
Soy manolito en gemail seguido del correspondiente dotcom
+TW1+TW2+FB+CAMPUSMVP
¿Cuándo se realiza el sorteo?
El sorteo se realizará el próximo domingo 5 de junio. Todos los comentarios que entren a partir del sábado a las 23:59 UTC+2 serán eliminados, como castigo por dejarlo para última hora ;DEse día, una aplicación leerá automáticamente los comentarios del post y asignará papeletas en función de los perfiles seguidos (+TW1, +FB…). La aplicación elegirá al azar un ganador, y verificaré manualmente que su papeleta sea correcta.
Tras ser elegido, me pondré personalmente en contacto con el ganador través de la vía que haya indicado al participar. Si por cualquier motivo no fuera capaz de contactar con él en un tiempo razonable, el premio sería sorteado de nuevo entre los participantes. También lo iremos difundiendo a través del blog y los distintos perfiles sociales.
Pues nada más, ya estáis tardando en participar. ¡Espero veros en el curso!
Publicado en Variable not found
¡Seguimos dándolo todo con motivo del décimo aniversario de Variable Not Found! Acabamos de finalizar el último sorteo y ya vamos a por lo siguiente, que os adelanto que os va a encantar :)
Seguro que no necesitáis que os presente a O'Reilly, pues se trata de una de las compañías de referencia en la difusión de contenidos para desarrolladores en forma de libros, eventos y cursos en vídeo desde hace más de veinte años.
Pues bien, O'Reilly ofrece a los lectores de Variable not found descuentos del 40% en libros en papel, y de 50% en libros electrónicos y vídeo cursos utilizando el código PCBW al realizar la compra. Interesante propuesta, ¿eh?
Pero no acaba ahí la cosa... :)