Sometimes I believe that being in the software engineering world is like a doctor: You have to catch up all the time in the new technology, frameworks and tools that are out there.
Most of the time I have written programs and stuff for the back end, but you know that as a web developer you need to have the knowledge to work both front (at least something that can be eye-candy for the customer) and back.
I have a personal love-hate relationship with javascript, because I know it has a lot of potential but it is frustrating at the same time. Being honest tough, I empirically learned this programming language, but I wanted more.
Polishing my javascript coding skills is a must for me right now, specially when I was first introduced to ReactVR. I am a huge fan of this new way of doing things with the computer and I have my dreams where I want to create something fantastic using Virtual Reality. Therefore, little by little I will start creating that opportunity learning ReactJS.
So I looked up for nice books and courses, starting in codecademy and then moving to something else. I don’t remember how but I found the Complete React Course link , created by Andrew Meadwhich I paid in a sale he offered (can’t remember if I found him on twitter or somewhere else), it has been a hell of experience!
I had no clue how this new way of using javascript worked, but then I starting to understand how to use this in order to create nice web applications.
The course is long but I think it covers important stuff like setting up your environment, build your first web app, third party tools, understanding components, props, states, etc.
So yeah, I’ll keep posting stuff about the course here, which helps me to go over again the concepts and exercises in the course. When I finish it, I could share new tips and tricks and keep learning!
I want to share with you some tips on how to use the Paypal module in your website, specially when you try to redirect to your website after the payment is verified and completed.
I am not going to explain the whole process, just want to share a few tips on how to complete the purchase flow and get back to your site. There should be many other options out there as well, hopefully this one can be useful in your project.
That being said, let us proceed with this quick tip!
I have used the basic implementation of Paypal: Express Checkout. Once you set up the script provided by Paypal according to your needs, pay attention on the ‘OnAuthorize’ function:
You can use the window.location.hrefobject in Javascript to redirect to your site once the REST api authorized the payment. Originally, the script has the window.alert object so it shows you the window with the ‘Payment completed’ message.
This small snippet has worked for me in basic implementations when I only want to know if the user paid correctly. If you need any extra information (i.e. transaction ID) then I think you should need a different solution.
Aprovechando un poco de tiempo libre puedo REGRESAR a este blog después de mucho tiempo. Muchas cosas han pasado, pero básicamente les hablaré de un tema interesante y que a la nueva generación de programadores/desarrolladores…y estoy hablando del mundo de iSeries de IBM (o AS400 para los cuates).
Honestamente nunca pensé toparme con esta tecnología para que pudiera pagar mis vicios, pero he aprendido lo suficiente para poder hacer un juicio de esta plataforma, cuál es el panorama y si realmente hay oportunidad en ella. En éstos tiempos, los jóvenes interesados en el mundo de la programación son bombardeados con información relevante a desarrollo de aplicaciones de escritorio, web, móviles, videojuegos, etc. con lenguajes comunes actualmente como es C#, Java, PHP, Ruby, C++, entre otros más, pero muy pocos (si acaso saben de esto por sus clases en la escuela) recuerdan que hace unos años era COBOL, Basic, C y RPG.
Por el motivo anterior, éstos lenguajes “viejos” ya no han podido transferir el interés a nuevas generaciones, las cuales se enfocan en las nuevas tecnologías, pero a pesar de esto, los “viejos” lenguajes siguen siendo solicitados por las empresas y con una paga más que aceptable.
Me enfocaré en iSeries o AS400, ya que es el tema en cuestión. ¿Cómo es que me topé con un trabajo así? Pues bueno, quise tratar una tecnología diferente a web y entré a un programa de capacitación para aprender a desarrollar en iSeries. En este programa eramos un grupo de jóvenes con antecedentes de desarrollo y para los instructores con eso bastaba…nos prepararon y después nos involucraron en los proyectos para una empresa muy grande que vende a montones y que uno de sus canales de venta y manejo de operaciones se basa en iSeries.
iSeries de IBM es una plataforma o sistema operativo que utilizan principalmente grandes empresas (MUUUY grandes) como lo son bancos, tiendas wholesaler como Sam’s Club/Costco, almacenes tipo Liverpool, Staples, Office Depot, CASINOS, Adidas, entre otras más. Este sistema operativo permite manejar muchísimas operaciones y transacciones de manera robusta y confiable, los expertos en el este mundo consideran a esta plataforma una de las más confiables en cuanto a rendimiento, nada que ver con los sistemas actuales.
Entonces si es muy bueno, ¿Por qué no es tan cotizado en el mercado como una chamba de Java o .NET? Como lo dije anteriormente, aprender estos lenguajes nuevos es relativamente fácil; Con que un estudiante tenga su laptop y el IDE listo, puede comenzar a aprender. En iSeries es distinto, ya que se requiere la adquisición de un equipo IBM y eso, es un buen billete, por lo que no es viable para universidades.
Aprender los fundamentos de RPG/CL/RPGLE/Free tiene una dificultad moderada, pero es todo un estilo o forma de trabajar si eres más de lo que trabajan en OOP. Uno de los choques culturales más fuertes era el hecho de que esto es 90% código, 10% gráfico (vieja escuela pues). Pero se ha modernizado que el formato “free” te permite programar con mayor soltura, a tal punto de estar programando en los lenguajes conocidos.
Hablando en México, hay ofertas, pero principalmente para los señores (seniors), creo que los de RH se sorprenderían al ver un desarrollador de iSeries menor a 35 años porque casi todos los que conocen superan el cuarto escalón. La oferta es sumamente mayor en el extranjero eso sí, países como España, Finlandia, EU, Alemania que hay empresas de grueso calibre y por lo tanto siguen confiando en los sistemas de IBM, aunque hay que admitir que otras más se han movido a nuevas ofertas como Oracle.
He leído mucha información respecto al futuro de este SO, ya que lleva más de 30 años en el mercado. Como dije, en otros países fuera de México aprecian demasiado al iSeries y siguen en busca de gente joven para prepararla y sepan trabajar en ella, así que si tu, lector que estás viendo esta entrada llegaras a ver una academia/entrenamiento como tu primera oportunidad laboral y no eres de los que se casa con un lenguaje sino que eres versátil y hábil para programar, puede ser un puente para probar suerte en el extranjero, pero eso sí, no esperes que la competencia sea fácil.
Hace unos meses participé en desarrollar para una aseguradora un centro de mensajes que se accede desde su servidor para que desde ahí se puedan enviar mensajes para dispositivos Android y iOS dependiendo algunos criterios, todo un reto ya que en donde trabajaba no teníamos experiencia para hacerlas.
En esta entrada, que no es realmente un tutorial para hacer un servicio de envío de push notifications para un app de iOS, sino que les daré algunos tips que pueden considerar a la hora de desarrollar, ya que, créanme, fue un dolor de cabeza por semanas encontrar la solución correcta para que funcionaran.
Espero sea una referencia para que no tengan problemas y puedan terminar en tiempo y quedarse calvos de la frustración.
1. Puertos SSL activos: Verifica que tu ISP (o si estas probando localmente, tu servidor local) tenga activos los puertos SSL, puerto 2195 o 2196. Esto evita que al probar tu servicio te aparezca el siguiente error:
Warning: stream_socket_client() [function.stream-socket-client]: unable to connect to ssl://gateway.push.apple.com:2195 (Connection refused) in SendPushNotification.php on line 28 Failed to connect: 111 Connection refused
También es recomendable que tu servidor de producción tenga habilitados dichos puertos. En casos particulares, algunos proveedores por default no los tienen activados así que habrá que pedir que los activen
2. Certificados: Este es otro problema que muchos desarrolladores llegan a tener, la generación de certificados tiene que ser al pie de la letra, porque esto puede provocar que simplemente no funcionen las pruebas de envíos de mensajes. Importante recordar que existen los certificados de desarrollo y producción y que dependiendo el ambiente en el que estés, los ID’s de los dispositivos cambiarán.
Ejemplo: Registras un dispositivo en ambiente de desarrollo, funciona todo bien. Pero después de que tengas que generar el certificado de producción, ese ID que tenías registrado ya no servirá por lo que tienes que registrarlo de nuevo en tu sistema que estes desarrollando. Esto me trajo una confusión que me costo algunas horas de trabajo así que tenlo presente.
3. Conexión de APN para envío de mensajes: Este si es un detalle muy particular que encontré al desarrollar el centro de mensajes. Cada vez que se envía el mensaje se crea una conexión nueva al servidor APN y después de que se envía el mensaje se tiene que cerrar por seguridad. El problema radica en que si quieres enviar mensajes de manera masiva usando una sola conexión, no será posible.
Por lo tanto, si necesitas enviar mensajes a n dispositivos simultáneamente, tienes que hacer una conexión por cada dispositivo al que vayas a mandarlo, de lo contrario, solo mandará al primer registrado o no mandará nada.
Este punto resulta algo truculento y lo solucioné de esta manera.
4. GET en vez de POST: Este punto realmente nunca lo encontramos como solución en sitios de ayuda como Stack Overflow y nos sorprendió el hecho de que funcionara.
Básicamente consiste en que todos los datos que envías en los formularios que vayas a utilizar (en mi caso, para escribir el mensaje al dueño del dispositivo) los mandes por GET y no por POST, curiosamente, al hacer este cambio, pude enviar mis mensajes sin problema alguno. Puede que mi situación haya sido una situación MUY particular y sabemos que a veces pasar por GET los datos no es buena idea, pero si tienes la oportunidad de hacerlo por este método, hazlo.
En esta experiencia que tuve, aprendí bastante sobre el desarrollo de este sistema de mensajes vía push notifications, algo muy divertido y retador. Algunos puntos quizás no apliquen a su situación, pero considérenlo como una especie de checklist cuando tengan problemas. Además, si tienen otro problema, es importante que lean a detalle la documentación que proporciona Apple para realizar este servicio.
Si tienen otra solución será bienvenida en este blog.
Quizás hace muchos años, cuando el auge del internet iba en crecimiento muchas personas se preguntaban cómo hacer su propia página sin necesidad de saber sobre html, tags, hipervínculos y cosas que pocos entendían, solo querían su página lista con lo que querían e imaginaban.
Adobe Muse hubiera sido la solución en ese tiempo, pero era algo muy complicado de hacer hasta en estos años. Este software de Adobe te permite diseñar y publicar tu sitio web para que esté listo en la red y sin necesidad de escribir código!
Adobe Muse en acción!
Recien comencé a utilizar esta herramienta en el trabajo para hacer diseños y con los conocimientos (tampoco soy un experto) del Software de Adobe se pueden hacer sitios web de gran calidad. Por ejemplo, utiliza Widgets que te permiten de manera inmediata insertar formularios de contacto, galerías de imágenes (como lightbox de jQuery), imágenes, etc. Los ajustes de diseño de tu sitio los puedes hacer por medio de “drag and drop” para que vaya quedando deacuerdo a tus necesidades, como se ve en la siguiente imagen:
Si deseas hacer algo como los hombres, es decir, insertando tu mismo el código HTML para algún objeto, como puede ser un mapa de google maps, también lo puedes lograr con la opción que trae el software. Otra característica importante es que te ayuda a definir si tu sitio es para navegadores de computadoras (PC o Laptops) o para móviles, algo importante en estos días debido a que son populares los smartphones y tablets.
También Muse te ayuda a publicar tu sitio web indicándole el servidor y basicamente subirá los archivos por tí, con la estructura de archivos que debe de tener.
En lo personal me parece una herramienta bastante atractiva, te ahorra bastante tiempo en tener que aplicar estilos, formatos, acomodar el diseño, creación de formularios, entre otras opciones buenas. Seas principiante o experto, vale la pena probarlo. El sitio oficial de Muse ofrece un periodo de prueba de 30 días y también incluye un buen de contenido/tutoriales para poder sacarle provecho y aprender más de este programa.
Una de las nuevas características dentro de Windows Server 2012 es el término VHDX o New Virtual Hard Disk Format (Nuevo disco duro virtual), como ayuda para las necesidades de almacenamiento y carga de trabajo que requieren las organizaciones, como en las siguientes situaciones:
Cuando se requiere un VHD (Disco Duro Virtual) mayor a 2,040 GB
Proteger de manera confiable en contra de problemas como fallas en el suministro eléctrico.
Prevenir degradación del desempeño
VHDX soporta arriba de 64 TB de almacenamiento, proporciona protección contra corrupción de datos en caso de fallas y reduce la degradación del desempeño optimizando su estructura.
¿Qué beneficios tiene un VHDX?
Un VHDX está diseñado para soportar cargas de trabajo de todo tipo, tiene una capacidad más grande de almacenamiento que los formatos anteriores y atiende las necesidades de empresas en evolución y crecimiento.
Características de mejora de desempeño hacen que un VHDX pueda mejorar aún más el manejo de carga de trabajo, protección de datos y optimización de la estructura del disco.
¿Qué requerimientos necesito para poder usar VHDX?
Windows Server 2012 o Windows 8
Rol de servidor Hyper-V
Con esto se da una pequeña introducción de esta nueva característica de almacenamiento en Windows Server 2012, podemos hablar a detalle del funcionamiento y estructura de VHDX, pero eso será en otro post.
Hemos visto un marco conceptual de las nuevas tendencias en donde Windows Server 2012 puede ser la solución para empresas y personas. A continuación se puede ver una infografía con ifnformación importante de Windows Server y su panorama actual:
Toda esta infografía fue realizada en base a la opinión de 70 compañías alrededor del mundo que actualmente están desplegando Windows Server 2012 como la solución de servidores en su empresa.
Como todo entusiasta de la tecnología, uno siempre quiere saber más de todo este rubro, ya sea por redes sociales, noticias, blogs, etc. Desde chico he sido apasionado al hardware de computadora, infraestructura y demás conceptos relacionados con los componentes físicos.
En estos días he estado aprendiendo fundamentos de algo que me llama mucho la atención: servidores, específicamente hablando de Windows Server 2012 aprovechando que no tiene mucho que salio al mercado. Así que usaré este espacio para poder explicar de acuerdo a lo que he aprendido todo lo relacionado con esta tecnología.
Windows Server 2012
Actualmente existen tendencias en la industria, tendencias que deben de asimilar empresas que proporcionan servicios de infraestructura, comunicaciones, almacenamiento o cómputo en la nube hacia otras empresas. Pensemos en algunas posibilidades:
¿Cómo asimilar la nube?
Con la nube privada se pueden obtener beneficios como el control y personalización de recursos dedicados. Hablando específicamente de los clientes de Microsoft, estos pueden construir su nube privada con Windows Server, Hyper-V y Microsoft System Center (los cuales se verán más adelante).
El problema o las preguntas que se generan en torno a esto es escalar o asegurar las cargas de trabajo (workloads) en las nubes privadas, haciendo que la relación costo-beneficio sea óptima.
¿Cómo incrementar la eficiencia en mi centro de datos?
El objetivo primordial para una organización será el reducir costos de operación, hacer más con menos e incrementar la disponibilidad de los sistemas de producción. La eficiencia dentro de los sistemas, o en este caso, de los servidores, junto a una buena administración de la nube son importantes para llegar al objetivo.
¿Cómo entregar o presentar aplicaciones de la siguiente generación?
Los servicios web siguen en crecimiento, los usuarios acceden a realizar sus actividades o consultas desde un sitio web, por lo que se requiere una plataforma web escalable y la capacidad de soportar aplicaciones en la nube. Los desarrolladores necesitarán herramientas para lograr todo lo anterior.
¿Como habilitar nuevos y modernos estilos de trabajo?
Actualmente, la manera en que se realiza el trabajo en organizaciones depende de mucha tecnología, así como las preferencias de los usuarios al usarla. Esta tendencia se le denomina “Consumerization of IT”. Un ejemplo claro es que los profesionales y usuarios utilizan sus propios medios como lo es laptops, smartphones, tablets, etc. Consumerization mejora la productividad y crea una ventaja competitiva.
Una de las metas para Microsoft es unirse con la gente de TI, ayudarles a asimilar y entender estas nuevas tendencias, asegurándose que el ambiente sea mas seguro y administrado.
Bueno y la pregunta es: ¿Cuál es la ventaja competitiva de Windows Server 2012?
1. Te lleva más allá de la virtualización. Ofrece una infraestructura multitarea y dinámica para poder crear la nube privada.
2. Entrega el poder de varios servidores en uno solo. Integra una plataforma multi-plataforma, fácil de operar y administrar reduciendo costos de operación.
3. Aplicaciones en la nube. Windows Server 2012 es una plataforma de aplicación con muchos beneficios para poder construir y desplegar aplicaciones por medio de herramientas y frameworks.
4. Estilos de trabajo modernos. Algo de lo que se hablo anteriormente, Windows Server 2012 da el poder de proporcionar un acceso flexible a datos y aplicaciones donde sea, desde cualquier dispositivo, simplificando la administración, seguridad y control.
Con esto podemos darnos cuenta del panorama en donde la solución de Windows Server 2012 puede ayudar a los usuarios y organizaciones.
Seguiré posteando más contenido relacionado con el tema. Si desean saber más sobre Servidores, Virtualización, Cómputo en la nube y otros conceptos relacionados, pueden obtener muchísima información en Microsoft Virtual Academy en sus módulos de Windows Server: Technical Overview y Virtualización Hyper.
Amigos que visitan este blog, los invito a el evento Nokia Developer Day que se llevará a cabo el 5 de julio a partir de las 9 hrs.
Ahora con el regreso de Nokia con Windows Phone 7, ambas compañías están echando toda la carne al asador. En este evento que durará solo un día habrá pláticas para todo tipo de desarrolladores que desean entrar en el mundo de las aplicaciones móviles. Habrá varias pláticas, conferencias, talleres, mucho conocimiento por compartir y lo mejor de todo: PREMIOS!
Desde accesorios para XBOX, celulares Lumia y S40 de Nokia, lo mejor es: Un viaje a Londres!
Nokia Developer Day
Lo único que tienes que hacer es confirmar tu asistencia al correo de la imagen y a lmvazquez11@gmx.com con tu nombre completo.Una vez enviado tu correo, recibirás un regalo sorpresa en tu bandeja de entrada!!
Así que no pierdan esta oportunidad de aprender aplicaciones móviles.