Friday, October 19, 2012

Cloud Video: Juan Noceda and Matt Hicks at Summit 2012 on Platform-as-a-Service (PaaS) Present and Future

In June 2012 I had the pleasure of giving this talk at the Hynes Convention Center in Boston, together with Matt Hicks, we covered the present and future of Platform as a Service (PaaS) through the eyes of OpenShift, the cloud product that I manage at Red Hat.

Since OpenShift moves very fast you may want to complement the info on this video with the content of this OpenShift Roadmap blog post that I added a few weeks ago on

Fore even more frequent updates follow me on Twitter.

The content of the video can be helpful for the non-technical person that just want to know more about the benefits of Cloud, Big Data, and PaaS, as well as for the Developer or IT Manager that wants to know the technical details: features, how OpenShift works, the open source project OpenShift Origin, and more.

Watch the video by clicking here

Stay up to date on this and related topics by following me on twitter: @Juan_Noceda

Tuesday, October 9, 2012

The Future of Cloud and Platform-as-a-Service (PaaS) Through the Optic of the OpenShift Roadmap

I love my job, and my job at Red Hat is to drive the product strategy, roadmap, and features of OpenShift, our Platform-as-a-Service (PaaS) offering; which is experiencing an amazing momentum.

OpenShift is based on three pillars: OpenShift Origin (our open source project), OpenShift Online Service (Red Hat-operated public cloud platform), and our soon to be released OpenShift Enterprise PaaS (an installable PaaS for private data centers).

OpenShift evolves at a fast pace thanks to an agile development methodology, as a result, time to time I provide an update on the direction that our roadmap is taking. Here is the current status of the OpenShift Roadmap:

OpenShift Roadmap at

Stay up to date on this and related topics by following me on twitter: @Juan_Noceda

(Spanish) Video Interview on Cloud and PaaS for Entrepreneurs with OpenShift by Red Hat es un excelente videoblog sobre tendencias y novedades para start-ups en el campo de la alta tecnologia.

De manera similar pero mas amplia que en este reportaje grafico, en esta nota tuve la oportunidad de brindar mis perspectivas acerca de como la nube o cloud computing esta cambiando la forma de hacer y de empezar negocios online. Concretamente, estuve explicando como Platform-as-a-Service (PaaS) o el Servicio de Plataforma se esta convirtiendo en una herramienta mas que necesaria para nuevos emprendimientos.

Para resumir mi vision a futuro del mercado de Cloud, creo que a partir de ahora, emprendimientos web que no esten basados en un servicio de PaaS como OpenShift de Red Hat no van a poder competir en tiempo y forma con start-ups que se muevan de manera agil explotando las ventajas de calidad y velocidad que ofrece el modelo PaaS. Alquilar y mantener servidores virtuales remotos y su software stack no es el negocio del desarrollador de aplicaciones y es demasiado caro para que una start-up se de el lujo de hacerlo.

Con un servicio cloud del tipo PaaS, el desarrollador se olvida de la plataforma, de los servidores y de su administracion para concentrarse en el codigo de su aplicacion. El stack, las bases de datos, y los servicios son provistos y mantenidos por el proveedor PaaS. Es decir, con Infrastructure as a Service (IaaS) como Amazon EC2 nos olvidamos de comprar servidores, pero hay que seguir administrandolos; con PaaS, en cambio, nos olvidamos de los servidores, de la plataforma y de todo lo demas, solo concentramos nuestros recursos en lo importante: nuestra aplicacion.
Para saber mas acerca de como OpenShift va ir implementando parte de mi vision futura de la evolucion gradual de PaaS y el Cloud pueden visitar el Roadmap de

Lo mejor de todo es que en el caso de OpenShift el desarrollador usuario de la PaaS desarolla como siempre desde de su IDE o linea de comando en forma totalmente gratis. Solo comienza a pagar si desea que su aplicacion pueda escalar para responder al crecimiento del trafico de usuarios, y solo paga por hora por los picos de demanda, lo que lo hace extremadamente economico. Para saber mas acerca de como Cloud y PaaS estan cambiando la forma de operar de los emprendedores pueden visitar este y este blog post en ingles.

Tuesday, September 25, 2012

(Spanish) Newspaper Interview on OpenShift, PaaS, and Cloud

Pagina/12 is one of the main newspapers in Argentina, it has a great supplement called Cultura Digital which covers the latest trends in technology. Mariano Blejman (@Blejman) interviewed me to talk about cloud, with focus on Platform as a Service (PaaS) and how OpenShift from Red Hat redefines the platform as a service space with a pretty unique value proposition.

Saturday, September 22, 2012

Dear Tech Entrepreneur! (startup or corporate): Embrace Cloud to Stay Competitive!

As entrepreneur (startup or corporate), you need to deal with so many things, to the point that it is easy to get overwhelmed and loose focus.

Many of those things that consume your attention are central to your project while others are critical but at the same time secondary compared to the core of your business.

Let's see how Cloud Computing can help on outsourcing the load of what is peripheral and how it can empower what is core to your idea, project, or business.

Go ahead and take advantage of the Internet Age:

One of the positive side effects of the current times is the pollution of digital services. You have at your disposal plenty of service providers which are happy to take those "secondary" concerns of yours and do them for you for a relatively modest fee. 
Some of these services range from addressing new concerns that were born in the digital age like email address validation and search engine optimization to the "webificated" versions of traditional workloads such as payment processing or logistics.
You can explore opportunities to outsource many of your secondary things to these service providers.
For instance: for CRM, Goods Shipping, Credit Card Payment Processing, it is difficult to bit in price and quality SalesForce.Com, UPS, Verisign, or similar providers. Would you do all these things yourself in house? Most likely not.
Following this trend of thought you can take the same concept to stuff that is more core to your business, and if you have a tech-based service/product that trend takes you to the clouds...
But the interesting part is that the cloud concept (public or private) is not just about outsourcing and cost savings, as you'll see bellow, is also about time-to-parket, market survival, and a boost in competitive edge.

Enter the big fat buzz word today: The Cloud

On top of your already overwhelmed entrepreneurial brain now you have to internalize yet one more new concept, Yes, I am talking about the infamous Cloud.
Despite all the buzz around cloud computing, big data, and the mobile revolution there is some easy and tangible substance behind the fog. And the best part is that the most undeniable advantage of cloud is the cost savings.

If you are a tech entrepreneur, it is very likely that Cloud Providers are the ones with the best chance of helping you with the tech core of your business. And this is because most of the cloud offerings aim to convert into packaged services (in utilities, really) all those technical tools, assets, and services that are needed to develop, maintain, and growth the next web or mobile great idea.   

Let's review what is the best type of cloud for each use case and for each type of entrepreneur. The right cloud for the right folk...
For Enterprise Tech Entrepreneurs:

You love your IT Department, they are rockstars, they manage to deliver your near impossible hardware, network, and software requests one way or the other. But when it comes to get infrastructure or software very fast for yet experimental and/or entrepreneurial stuff your friends in corporate IT feel bad simply because despite their efforts is difficult for them to catch up with the speed of your creativity and the pressure of the innovation produced by your competitors.

A good Cloud for these cases is to work with your IT folks on a partnership with an external infrastructure as a service provider (IaaS) like Rackspace or Amazon EC2 in order to supplement your internal infrastructure with additional rough computing/storage resources. Or engaging with a Platform as a Service provider (PaaS) like Google App Engine, Microsoft Azure, or Red Hat OpenShift when you have higher-level requirements like full-stack, ready-to-use, and scalable environments for development and runtime.

If your organization has restrictions about working with external providers or is susceptible to data location regulations the solution may be to partner with a cloud provider that has a strong private cloud strategy or even better a provider with a good track record in enterprise software combined with a strong hybrid cloud strategy like IBM, Red Hat, HP, Microsoft, or Dell, just to name a few.
There is not special endorsement of the named vendors, just naming a few as examples, do the research that and check the ones that make more sense for your use case.

Infrastructure as a Service (IaaS) is OK but is like having remote Virtual Machines, you do not to buy servers but you still have to manage them and manage the software running on them.
Instead, Platform as a Service (PaaS) is the real deal when it comes to the full realization of the utility model that cloud promises; with PaaS you just focus on your coding the app and then the platform service takes care of running it and everything else, forget about scalability, performance, redundancy, security backups, stack management, patches, databases, servers, etc.

Try to stick with a vendor that can give you a nice hybrid-cloud story, meaning that offers a PaaS that can be deployed in your datacenter as well as consumed from the vendor-operated public online cloud. In this way you can move your apps between your laptop, your data center PaaS, and the online cloud PaaS without modifications.

For Software as a Service (SaaS) Providers:

You need to take your SaaS web app to market ASAP, or yo may need to keep your existing App/Service current and evolving over your competitors. How can you keep up with such pressure and fast pace and at the same time focusing on your platform and in your infrastructure? The answer is by relying on a Platform-as-a-Service (PaaS)!

Most of the new web and mobile apps developed today are not running on custom hardware or manually-maintained IaaS, the majority of new SaaS development runs on a PaaS layer. PaaS gives SaaS developers the freedom, focus, and bandwidth to improve their apps and services by paying a reasonably low cost for a platform service that gives them tuned, elastic, optimized, and full-stacked environments with application servers, databases, and frameworks maintained by professional vendors that can provide a world-class service.

Avoid those PaaS providers that only support a restrictive subset of your software stack or the ones that lock your code into proprietary APIs and services. It is better to go open, meaning going open source and open choice. CloudFoundry and Heroku are great examples, they are pretty open but a little restricted in some technology choices, Google App Engine and Azure are nice but have multiple lock-in points for your code, OpenShift is more open and less restricted, and despite is a younger player is getting a fast traction due to Red Hat's expertise and trajectory in the platform space.
For Mobile Entrepreneurs:

Pretty much all the rules that apply to the previous category also apply to mobile projects. In fact, many SaaS solutions are Mobile, and Many mobile apps offer a SaaS-like optional service.

The important factor here is to pick a PaaS with great scalability and a simple pricing model in which you pay for what you use, since is very likely that you will suffer an exponential traffic growth in a short period of time as well as rollercoaster-like spikes in usage. Another big plus here is a strong support for NoSql as a service, preferable MongoDB which is becoming a de-facto standard.

MongoLabs and OpenShift are among the strongest cloud vendors in terms of MongoDB expertise and Elastic Auto Scalability capabilities.
I would also consider a PaaS vendor who has support for Node.JS; which becomes handy in many mobile use cases.

For Big Data Entrepreneurs:

From the business or functional perspectives you do not need to deal with storage directly, but most likely technical folks building web, mobile, or enterprise apps want to prepare for growth and looking to persist the app data in databases that are horizontally-scalable, high performance, and flexible structure databases.
MongoDB, Cassandra, and Hadoop are the most popular open source technologies emerging as leaders in the Big Data Space, look for cloud services with a high investment on these technologies, 10Gen is a great company in this space. Terracota and Infinispan are great NoSQL and data grid and distributed cache technologies, in particular if you do Java and Ruby.

For the rest of the mortals:

If you are not developing the next Facebook, or moving your whole Line-of-Business enterprise apps to the cloud, or creating the next LinkedIn and you simply want to take advantage of the cloud movement in your professional life, You may want to check Google Docs for office productivity and DropBox for file management on the cloud, just to name two.
In summary

Cloud is a new way of thinking about application/data development and consumption, not necessarily a technology revolution but a technical evolution, combined with new commercial models, closer to renting rather than owning. A model in which you outsource what is expensive and hard to do by yourself to a specialized vendor (or to an internal provider group in your organization in private clouds), so you can pay a low price for computing, storage, application services only when you use them.

It is happening already, those entrepreneurs that shifted to cloud are moving faster, at a lower cost, and they are getting a quality/UX gain due to focusing in their core business.
I argue that in the immediate future entrepreneurs that do not embrace cloud paradigms like Platform as a Service (PaaS) will be struggling to compete and survive due to the lost of agility, time-to-market, and business focus, compared to the ones that use cloud as a productivity and cost saving accelerator.

Thanks for Reading!

Stay up to date on this and related topics by following me on twitter: @Juan_Noceda

Saturday, June 16, 2012

Linux, Cloud, Open Source, Virtualiztion, PaaS, Java, BigData, Mobile, and more in a single event: Red Hat Summit and JBoss World 2012

What is the only high-tech event in the industry that can concentrate, in a charming city like Boston, all the technologies and thought leaders that are driving software innovation today? The answer is Red Hat Summit and JBoss World 2012 on June 27th to 29th, let me prove why...

This is not just another software vendor event, in which you only see the vendor's product stack from the angle that they want, as its name implies, Summit 2012 is a multi-perspective open event, in which the open source communities, an ecosystem of Red Hat partners, and independent parties get together in aparticipative event hosted by Red Hat to talk and share experiences as they drive forward the next fronteer in information technology and software development.

Let me prove you through the 7 points below why you get the best of the software industry in a single event, and show you how Red Hat is powering many more critical areas than you may think in today's tech world:

Watch this cool Summit video by clicking here

1) Linux is by far the most important operating system today, is powering everything, from mobile, to tablets, to servers, to cloud. Red Hat is the #1 contributor to the Linux kernel, the #1
Enterprise-grade Linux, and the #1 commercial open source company ever.

2) The Java Virtual Machines (either coding with the Java Language, with JRuby, Ceylon, Scala, or others) are the most deployed technology in enterprise software space.
The products, services, and open source projects around JVM-based technologies represent the larger software ecosystem in the industry, and drive the most innovative projects in the open source space; and JBoss is the leading full JEE open source application server, the first one implementing EE6 full profile.

3) SOA, EDA, ESB, and BRMS are the way of doing middleware these days, and open source projects like SwitchYard, Drools, JBoss ESB, and commercial products in the JBoss Enterprise Middleware portfolio  represent the most influencing technologies in the this space.

4) Cloud Computing, despite being the queen of the tech buzz these days, it is effectively changing the way we thinking about software infrastructure, distribution, ownership, economics, and end user consumption. If you look closely, at Summit you have in a single place the thought leaders behind the most exciting and popular IaaS and PaaS technologies in the cloud space: OpenStack, OpenShift Origin, DeltaCloud, Katello, CloudForms, and manny others.

5) Virtualization exploded from being a single-vendor monopoly to an open source standard, KVM has emerged and it was immediately described byt the market analist and tech experts as the virtualization technology with the best long term strategy and most promising market potential. Red Hat is a strong contributor to the KVM open source community and a market disruptor with its commercial virtualization product: Red Hat Enterprise Virtualization.

6) Big Data is the new trend on structured storage, but you cannot enjoy the benefits of a NoSQL data store if you do not have a solid unstructured data infrastructure underneath. For these reason Red Hat is embracing together key complementary technologies like Gluster FS via Red Hat Enterprise Storage, Infinispan via JBoss Data Grid, Condor via Red Hat Enterprise MRG Grid, and MongoDB via OpenShift.

7) Mobile and Web, Do you think on JBoss when it comes to Mobile App Development? most likely you don't, but there is already a thriving community that is changing that, JBoss Developer Studio integrates with open source projects like JBoss Tools, AeroGear, Node.JS, and POH5 in OpenShift to deliver a developer experience that combines HTML5, CSS, JQuery, Mobile, Web, CDI, EE, Middleware, and Cloud.

Isn't exciting?!
Come to Boston on Jun 27th and attend to 7+ conferences in one by only joining us at Red Hat and JBoss World 2012

Check Richard Morrell's Blog for additional perspectives about Summit.

My sessions at Red Hat Summit 2012 and JBoss World 2012 Sessions on Thursday June 28th:

OpenShift: What's new and What's next in RedHat's PaaS
June 28th 10:40 AM EST

What's New in Java Frameworks for Web, Mobile, and Cloud
June 28th  1:20 PM EST

More about my roadmap session with Mike Hicks in OpenShift blog.


The red rectangle in the Wikipedia article remarks the paragraph sating that Red Hat is the largest corporate contributor to the Linux kernel.

Related Blogs by Juan Noceda (follow on Twitter: @Juan_Noceda):

Node.JS and the OpenShift Roadmap - Audio Interview by Gordon Haff

Reasonable concerns about privacy and security in public clouds and its mitigation trends 

Tuesday, June 12, 2012

Monday, June 4, 2012

(Spanish) ¿Por qué Java EE sigue liderando en términos de innovación?

Me encanta Node.JS, Ruby me parece excelente, Ceylon promete mucho, Scala está viviendo un gran momento, Zend Server es un gran paso adelante para PHP, Play! 2 está madurando muy bien (Inclusive dentro de PaaS) y como ellos muchos otros lenguajes, frameworks y plataformas están generando un admirable nivel de innovación en el campo de la informática, en especial en el ámbito del software empresarial.

Muchas de estas tecnologías ya tienen varios años de madurez pero son relativamente jóvenes comparadas con el punto de inicio de Java, que ya data de mucho más de una década. Paradogicamente, muchas de estas tecnologías están basadas en Java.
Para una tecnología nueva es muy fácil evolucionar rápido, en cierta forma está todo por hacer, pero es realmente remarcable alcanzar ese mísmo nivel de avance con tecnologías ya establecidas como Java, o en particualr Java Enterprise Edition (JEE) la cuál goza de un liderazgo indiscutido en el ámbito empresarial en lo que vá del milenio.

Si ponemos atención, veremos que Java tiene un rol central en una gran parte de los proyectos más innovativos en términos de software empresarial, móvil, big data, NoSQL y cloud. Y mejor aún, la mayoría son open source:

Una alternativa políglota a Node.JS corriendo en la Java Virtual Machine (JVM)

Ruby corriendo sobe la JVM y usufructuando servicios empresariales de JBoss

El framework de Java que rompió los esquemas tradicionales de JEE promoviendo una arquitectura de capas clara, Dependency Injection, AOP y uso de Design Patterns.

Hibernate ORM
El framework más popular en la comunidad Java para persistir y leer Objetos en una Base de Datos Relacional sin escribir SQL.

Posiblemente el framework más moderno y sofisticado para Java, la próxima frontera de innovación por encima de Spring.

Una nueva plataforma empresarial para Java pensada desde cero para ser liviana y competitiva con JEE

Una interesante conjugacion de Distributed Cache y NoSQL que escala horizontalmente para dar forma a una auténtica Data Grid.

Non-blocking I/O.

Fusion de HTML5, JQuery, JS y Java (POH5) que promueve un patron de arquitectura de aplicaciones móviles respaldadas por un backend empresarial.

Al detenemos un segundo y observar cuales son los proyectos de open source mas importantes de la industria (que es donde se concentra la mayor cantidad de innovación), una gran parte de ellos gravitan alrededor de tecnologías Java. Mi teoría es que Java es frecuentemente elegido por los desarrolladores de soluciones y frameworks por ser un lenguaje de aplicación general muy versátil y con un campo de acción muy amplio, es sumamente poderoso en relación a lo relativamente fácil que es de aprender, es abierto, extensible y para ser un lenguaje de alto nivel brinda un gran capacidad de control fino.

En cierta forma también su vigencia en popularidad está avalada por una buena reputación que goza de más de una década de liderazgo en numerosas áreas del desarrollo de software, que recorre desde Application Servers, a aplicaciones comerciales para PCs, pasando por plataformas móviles como el SDK de Android (aunque sea un derivado de Java), hasta juegos y software the control de dispositivos (o "embedded software").
Creo que su diseño original, pensado desde cero para objetos, y su estructura modular y jerárquica de clases y librerías, dieron origen a una base sólida para que el lenguaje creciera de manera orgánica pero manteniendo la simplicidad y la elegancia. Hoy en día hat otros lenguajes alternativos a Java que fueron creados más recientemente con tendencias más "modernas", aún así nuevo software empresarial, nuevos proyectos de código abierto y nuevos frameworks son comenzados cada día en Java, probando así, que por los puntos antes descriptos, el vapor sigue humeando bastante caliente sobre iconico logo de la taza de café.

Por último, otra gran razón de su vigencia en la cresta de la ola innovativa, es el ecosistema de empresas comerciales y proyectos de código abierto que se generaron alrededor de Java, que de alguna forma trascendió sobre la compañía que le dio origen, pasando a ser casi más propiedad de la comunidad que de un sólo proveedor de software, dicho sea de paso, una comunidad que atrae y genera la mayor cantidad de líderes en el ambiente tecnológico.

Durante mi visita al última visita a JavaOne, tuve el privilegio de intercambiar perspectivas en persona con muchos de esos líderes de las comunidades de código abierto (comunidades asociadas a los projectos open-source listados más arriba), fue un evento único, con una gran muestra de lo que es la vanguardia en Java, una experiencia que quiero repetir en JavaOne 2012.

Pero por ahora los grandes eventos Java que se vienen este mes (Junio 2012) son JBoss World - Red Hat Summit y JUDCon, en le primero de ellos tengo el privilegio de conducir una presentación sobre mi producto: OpenShift PaaS, en el contexto de Java EE y JBoss y como así también moderar un panel sobre Java frameworks (Enterprise, Mobile, and Cloud) con reconocidos miembros de la comunidad Java.

Se que este 2012 mucha gente alrededor del mundo está viniendo a Boston para ser parte de esta excitante semana del 25 de Junio, en la cual tendré la suerte de reunirme con varios amigos de España y América Latina. Si quieren tener un mini adelanto en español de los temas que trataremos pueden escuchar la parte 1 de esta entrevista que nos hicieron en JavaHispano.

Saturday, June 2, 2012

JavaScript is back! (Again) ...Again? This time: Node.JS

No! this is not 1999!
No, you are not living in the times in which Netscape lost its browser kingdom to Microsoft and developers discovered the magic of client-side web programming thanks to Brendan Erich's creation: an ECMA script dialect called JavaScript.

Netscape is no longer around trying to convince us that iPlanet is THE web server, and JavaScript is THE web application server-side language to rule the WWW.
No more Microsoft telling us that VBScript is the way to go for ASP, but just in case you didn't not like it they also offeredd JScript.

There is no more pushing by IBM promoting Lotus Domino (Today positioned as"enterprise social" platform) as a web programming environment, suggesting an "efficient?" programming language salad that used to mix: formul@ language, Java, JavaScript, a pseudo VB and VBScript as the ideal solution to code for the desktop, the documents, the intranet, the internet, and everything else that may come up in front of you.

No! neither we are in 1998, in the middle of the explosion of Microsoft Explorer 4.0, DHTML, Flash 4, and Java Applets integrated with the browser's DOM via JavaScript; or full Flash coding with ActionScript 2.

So, if we are not at the end of the 90s, and if the pros and cons of JavaScript as programming language were well stated and debated through 2,472,743 blogs, 783 books, and 63,887,981 forum threads around the world for more than a decade, then, Why is JavaScript hot again?!

Actually, JavaScript has never gone away, totally the opposite, it was powering the web (and many other things) for more than a decade and there are no signs for that to decline any time soon.
In fact, many surveys suggest that JavaScript is at the top 5 in the list of most popular programming languages around the world these days; it is easy to figure out why: Is not he most elegant and expressive language, but it is compact, it is easy, it is flexible, it is fairly coherent, and more importantly, it was highly popularized thanks to the exponential growth of the web.

But even if JavasScript was always there and growing, two or three years ago it wasn't necessary cutting-edge to say that you were doing a project in JavaScript. This powerful language for mere mortals used to be associated to the late 90s Dot Com bubble, so it was kind of old school in the late 00s and early 10s.

Despite of being extremely handy, JavaScript always had the karma of being a -scripting- language, preventing it from enjoying the prestige and respect of the strong-typed and compiled languages. Like if being interpreted or compiled was what draws the line between second and first class languages! As side note, Ruby and other languages brought a positive spin to this prejudice with a fresh wave of new "dynamic languages", helping to change the perception about interpreted languages, but that is a discussion for another post.

But here we are, in 2012, and surprisingly, if you are in the middle of a conversation among geeks and you crack a comment saying that you are working in a cool cutting-edge project in JavaScrip then now you are cool again! Why? well, this time the JavaScript wave came back to the shore with a surfer on top of it, who has a cool t-shirt reading: Node.JS.

Unless you were isolated from the high-tech buzz for the last 3+ years you may know that Node.JS is enjoying an impressive momentum. And why is that? Popularity does not grow from the trees, it must be a reason for Node.JS' hype. Yes, there are several reasons...

Node.JS brings a refreshing perspective to the world of "serving stuff in a network", its creators, were frustrated with the scaling, resource consumption, and performance challenges of traditional web servers; which are essentially an evolution of the file server.

Most web servers were originally conceived to deliver files over a network (the Internet), their inherit request/response paradigm was designed focusing each thread on serving (transferring) a file until the transaction is complete and just then switch to "available mode" to take the next request. Even if most of the web servers do this cycle in multiple parallel threads of execution, each of them takes ownership of a nice amount of resources in the server while the transaction lasts.

So, Node.JS original creator, Ryan Dahl, conceived a platform optimized to execute code (instead of serving a file) as a response to a network request, the result was a framework that allows us to accept network requests in a non-blocking fashion in each server thread (Node.JS is not the only platform with non-blocking I/O). In other words, a process can have a listener that can take a request then put a routine to work on that request without waiting for it to finish as it switches back to listen mode regardless if the processing of the previous request finished or not.

To materialize the just described non-blocking I/O paradigm, the creators of Node needed to empower the developer in this model with a programming language according to this kind of fire-and-forget pattern. For diverse technical and popularity reasons they have chosen JavaScript (via Google's V8).

Instead of being "the killer app", JavaScript played the role of "the killer lang" in Node's initiative, JavaScript has brought programming component to the Node promise, acting as a catalytic for this idea having a non-blocking web server that is light, fast and easy to code.

Node.JS creators recognize that JavaScript has been chosen not only for being a good technical fit, but also for its degree of popularity; which was expected to help in the adoption of Node, and boy! it did.

Node.JS is not a multi-purpose platform/framework, though. It was designed to do -not everything- but a few things well, like processing tons of short asynchronous network request and deliver small responses as fast as possible.

Because of that, Node earned a nice popularity in the implementation of mash-ups, social, network gaming, and mobile apps; which in their majority match with the previously described "many short network interactions" model. These type of applications are also known as "Systems of Engagement" (in opposite to traditional Systems of Records such as ERPs, CRMs, and others).

To wrap up this post up, here is my advice: Node.JS is great, take advantage of it, enjoy it, but do not use it to recreate models that Node is escaping from.
Like in every other new beginning of an emerging technology, several additional tools and frameworks may take that technology in many different directions, not always in happy ones.
Node is suffering this issue now, ironically you will find that there are already frameworks out there on top of Node that are trying to use it as file server or as a traditional dynamic web server, resembling the type of models that Node was born to improve, not to emulate.

Let's learn from the industry's past mistakes, the last decade is full of examples of bad JavaScript uses that led to millions and millions of spaghetti mark-up and scripting, let's make sure that this time we do it right with Node. Remember that good design patterns for modular, reusable, and maintainable systems are still valid, even in this new paradigm. You can try node for free on the cloud today with OpenShift, Red Hat's Platform-as-a-Service (PaaS)

JavaScript is not back, it is not back simply because it was never gone, now new programming paradigms are testing its resiliency to the pass of time and its adaptability to new technology trends; its proven success on passing these challenges is validating once again how simple, versatile, and powerful the language is.

Related Resources: Podcast interview to Juan Noceda by Gordon Haff introducing Node.JS in OpenShift.

Stay up to date on this and related topics by following me on twitter: @Juan_Noceda

Friday, May 18, 2012

Privacy, Security, and Compliance Concerns in Cloud Computing

As you have been noticing there is a great deal of momentum around cloud computing, perhaps propelled by the massive marketing investment around it. Actually, many of us at this point may feel a little saturated by reading and hearing every day how "cloudy" each new product offering claims to be.

The Cloud is still in its infancy (Real Scene in a Day Care)

But at the same time I believe that we all get the point and we can see the real and undeniable advantages behind the cloud-way of doing things, from simple things like having all our music or photos everywhere all the time and playing them from each of our devices, to update my documents or data from my laptop or from my uncle's old PC without installing a single piece of software or moving a single file around, or to the most advanced cases like having an entire multi server development, testing, and runtime platform to host my enterprise applications without doing the administration of a single piece of software stack, networking, or servers.

On one extreme of the spectrum of opinions around cloud we have the "give me the benefits of cloud, I do not care about anything else" type of individuals, in the middle of the spectrum we have the cloud pseudo-skeptics, which is the portion of the consumers that feel that cloud is not all that great, that it is just another fancy name for "Internet stuff", and in the other extreme we have the quasi-paranoid guy, who thinks that "the cloud" means putting all my private data in hands of cloud service vendors, that the cloud outages can cause apocalyptic damage in our societies, that cloud provider may go out of business and my data with them, and many other negative things.

While all these concerns are fair in some cases, I cannot stop comparing cloud skepticism and paranoia with the concerns that we all had in the early 2000s about using our credit cards to buy stuff online. Do you remember? it was only a decade ago when we often heard phrases such as "What?! These guys from are nuts if they think for a moment that I will enter my credit card information in this web form!

By the way, a quick reminder that cloud is more a model that a technology change, we will see many enterprises adopting private cloud models that may bring to IT departments and its internal consumers the same type of benefits that we see in the "public" cloud space. The increasing interest on on-premise Platform-as-a-Service (PaaS) as private cloud in medium and large organizations is an example of that.

We are also going to see a lot of hybrid clouds emerging, in which logical clouds will be built transparently on top of public and private infrastructures.

My theory is that in a few tears form now, as security increases and regulations evolve, many of the "clouds about cloud" will clear out, and we will be doing much more stuff in the cloud-way than what we can think today.

Thanks for reading!

Stay up to date on this and related topics by following me on twitter: @Juan_Noceda

Interview about Cloud, PaaS, NoSQL, OpenShift, and Node.JS

Thanks Gordon Haff for the interview about cloud trends, the PaaS market, OpenShift growth, JBoss relevance, the importance of Big Data or NoSQL, and the Node.JS momentum.

Here is the audio podcast and transcript

Saturday, April 7, 2012

Affection! Affection! Affection!

Let's get touchy-feely for a second, let's talk about emotions, feelings, and affection.
Yes let's bring all those "soft topics" that seem to be superficial, peripheral, and irrelevant in technical and business atmospheres.

Emotionally Attached. Sinclair ZX Spectrum.

What did it happen to the Product Manager/Designer behind this blog? Did he go through an emotional breakdown? Is he considering a career change towards soul counseling? Did he forget about his technical background based on hard sciences? Too much TV talk shows?
Not really, I am using exaggeration as vehicle to spark a somehow controversial discussion. When we talk about high-tech products we usually talk about electronics, software, engineering, business, and rational design; in such frame of thought, talking about emotional concerns seems too soft, too out of range, especially for my friends the engineers (which I happen to be one of them as well, or used to be, or I am still are, or... I don't know any more...).

So, Yes, let's talk about those personal and emotional aspects of software and hardware products that due to its scarce presence in product strategy sessions seem to be a taboo in corporate environments.
Am I proposing then dragging all our mostly left-brain engineering teams into a touchy-feely group session that reassembles more a psychological intervention than a technical meeting? mmm... may be not.
Realistically our friends in engineering may only want to hear a summary of the decisions out of this type of discussions, and only when they want to know more about the Whys behind some product roadmap directions. Perhaps the same applies to our suit and tie friends in the business side of the organization. Without going to any extreme, what I will propose, is to consider talking more about often underestimated consumer emotional factors as part of the product design and development process.

Okay, What kind of softy stuff do I want to talk about after all? simple, all those things that make us connect with products in a more human, emotional, or even unconscious way, I want to give some air to all those aspects of a product design that are not a central concept in many of the rational techniques used daily in product conception, development, and management.

I am not saying that nobody talks about the emotional relationships between products and costumers, there are entire books and seminars about this topic, the subject represents a whole professional career for many, and disciplines like marketing, sociology, industrial design, graphic design, advertisement, and others give a lot of attention to the point. Ironically, this is not a central topic in the the process and methodologies used in the high-tech industry when it comes to product strategy and development; even more, it is surprisingly high the number of real life cases in which this type of considerations are not even touched.

And why is this ironic? because every one of us is involved in this emotional interaction with products daily, perhaps sometimes without noticing it, even those who work on product development and do not pay attention to these factors in their own every day jobs.

To picture what I am talking about, let's take for instance a writing/editing software products; there are thousands of word processors, text editors, and similar programs out there, however each one of us seem to have our own taste for word processors or text editors, and moreover, some times this preferences are argued during passionate discussions among users of different competing products.

You may say: A Word Processor? What in the world could create less emotional connection between a user and product than such unsexy piece of software? Well, the answers could be: A novel, a poem, or the code of the next big app, perhaps a collection of family cooking recipes.

Okay, your next logical question would be: What did the designers of the word processor really do to create that emotional connection? Here is the answer: Since the beginning of the product consumption cycle the user already has some sort of emotional relationship with the domain field that the product fulfills (not yet with the product itself), in this case of our sample user (the writer), he has an emotional link with Poetry.

From that point on, several simple functional details are there in the software that make our poet to be productive and happy with the tool. Perhaps those details start with things like the colors, design, and fonts of the buttons and icons in the editor's Graphical User Interface (GUI); which may have aesthetics  that resonate well with someone spending hours in front of the computer playing with words, or may be, after pressing each button or menu in the GUI she feels that the vendor invested quite some time getting those features right thinking on someone like her in mind. As a result she feels appreciated by the software creators and empowered to succeed with her tool, she finds each editing tool in the places she may guess or expect them, and she masters the software quickly because the features were meticulously thought to be consumed intuitively by a writer.

As our poet uses the tool, each GUI interaction leads her to another rewarding result, creating a cascade of small positive experiences, she then can move forward easily focusing on her work, and not thinking on how to use each gadget in the editor. Each of those small positive interactions during her writing are constantly generating pleasant memories associated with her poems.
Most likely, she will proudly recommend, upgrade, or buy that product or others from the same software company behind her new beloved tool. She will perceive the tool as loyal and useful companion for her work.

Can you imagine the same type of overall positive product experience in a user that builds up frustration in each unsuccessful or unpleasant interaction in the word processor? I personally cannot.

This example unfolds how good functional design is a good starting point; thanks to carefully designed features, users can cumulatively build a baggage of personal feelings and positive connections with the product. Those good feelings combined with how the product empowers or rewards users creates a unique link of affection between product and consumer, that goes beyond effective functionality.

There are millions of other examples: musicians and their preferred instruments, construction workers and their favorite tools in their toolboxes, riders and their motorcycles, and perhaps many of us with our cars or some special clothes.
Retrospectively I can recall several products that left an emotional mark on me: My first bicycle (versatile and agile, made me a Centaurus on wheels during my early childhood), My second home computer (Yes, my forever remembered Sinclair ZX Spectrum, perhaps the true beginning of my story), my Walkman (younger people may not know what I am talking about, but do not worry, it was a kind of iPod of the previous century, but with bunch of moving mechanical parts, powered by tiny hamsters WALKing their micro hamster wheels in order to make spin a gear in a "cassette", french word for interchangeable flat music-boxes inserted inside the "iPod", this flat music-boxes were like downloads that you can touch, containing inside a long flat serpentine with deposits of metal particles; which were collected one by one by a tiny wizard called Magneto, who converted them into beautiful songs, all that marvel thanks to the WALK-MAN's inventor, an old Japanese craftsMAN who his dad used to affectionately call "Sony").

Cassette Tape. Courtesy of

Additional memories may be related to, for instance, some of my early cars (some of them pure German lines, others Italian classic charm); or my first smart phone (the world in my hand), and many others...

If we know that evocative connection between consumers and products is a critical success factor for products, Why does the traditional product conception methodologies focus first on the technical and functional aspects of the them? No question that functionality and technology are key, however, isn't time for us to put the emotional considerations in foreground during the product design process? I say that time to time our design process should start with three priorities in mind: Affection, Affection, and Affection!

By the way, What were the products in YOUR life that created an emotional connection with you..?

Thanks for reading!

Stay up to date on this and related topics by following me on twitter: @Juan_Noceda