DevFest Austria 2013 Talk : Thinking Beyond RDBMS — Building Polyglot Persistence Java Applications

Couple of weeks back I gave a talk at DevFest Austria event on how to use different nosql datastores with OpenShift.  You can view the video here.

Day 1 : Bower — Manage Your Client Side Dependencies

From today onwards I have taken a challenge that I will learn a new technology every day for a month and will blog about it. I will also try to do a small screencast.  After my normal office working hours I will spend couple of hours learning a new technology and one hour writing about that. The goal of this activity is to get familiar with lot of new things happening in community. My main focus would be on JavaScript and related technologies but it can be Java or other technology as well. There will be some technologies on which I might spend multiple days but I will pick new topic each time within that technology. Wherever it makes sense I will try to show how it can work with OpenShift. So, I am expecting it to be fun and a good learning experience.

As my first topic I have decided to learn about Bower. Continue reading “Day 1 : Bower — Manage Your Client Side Dependencies”

Build Your App on OpenShift Using Flask, SQLAlchemy, and PostgreSQL 9.2

Deploy Flask Python Apps on OpenShift

Let me start this blog by confessing that I am a Java guy who first learned Python three years back but haven’t used it much in my day to day work. So, after three long years, I have decided to brush up on my Python skills by developing a simple web application. By simple I don’t mean “Hello World” application but an application which does some work like storing data to a database. After spending some time googling “best web framework in Python,” I zeroed in on Flask. Flask is a microframework for Python based on Werkzeug and Jinja 2. It is a very easy to learn framework and is based on convention over configuration, which means that many things are preconfigured with sensible defaults.

You can read full blog here https://www.openshift.com/blogs/build-your-app-on-openshift-using-flask-sqlalchemy-and-postgresql-92

Deploy WebSocket Web Applications With JBoss Wildfly

Wildfly application server on OpenShift

Wildfly is the new name for the community edition of the JBoss Application Server. The current development version of Wildfly (8.0) will be adding support for Java EE 7. Java EE 7 brings a lot of goodies for Java(EE) developers. One of the features of Java EE 7 is the JSR 356 Java API for WebSockets, which specifies a Java API that developers can use to integrate WebSockets into their applications — both on the server side as well as on the Java client side. In case you are new to WebSockets or JSR 356, please refer to my earlier blog post on this subject. In this blog post, we will install Wildfly on OpenShift using the DIY cartridge and look at the sample WebSocket application bundled with the quickstart.

OpenShift already has best in class Java support with Tomcat 6Tomcat 7JBoss AS7, and JBoss EAP 6 bundled with it. You can also run Jetty or GlassFish on it using the DIY cartridges. In addition, OpenShift provides support for Jenkins continuous integration server.

Read full blog at https://www.openshift.com/blogs/deploy-websocket-web-applications-with-jboss-wildfly

How to Build and Deploy OpenShift Java Projects using Travis CI

Recently, Travis CI announced support for deploying OpenShift applications from Travis builds. Travis-CI.org is a free hosted continuous integration server for open source applications. Commercial non-opensource project developers can use the Travis CI commercial offering. This blog shows how developers can use Travis-CI.org to build and deploy OpenShift Java applications. These instructions also apply to commercial offerings Travis-CI.com

Please note that out-of-the-box OpenShift provides support for Jenkins based deployments. You can refer to my blog on Jenkins for more information.

Read full blog https://www.openshift.com/blogs/how-to-build-and-deploy-openshift-java-projects-using-travis-ci.

Run Gradle Builds on OpenShift

OpenShift has supported Apache Maven as default build system for Java based projects since the first release. All the Java projects created by OpenShift are maven based. A few months ago we also added support for Apache Ant. All OpenShift gears now have Apache Ant installed on them. So, using Apache Ant to build your project is as easy as updating the OpenShift build action hook. You can refer to my blog post to learn how you can use Ant to build your OpenShift projects.

Lately I have seen lot of developers asking how they can use Gradle to build their projects. Gradle combines the power and flexibility of Ant with the dependency management and conventions of Maven into a more effective way to build. A lot of open source projects and enterprises are using Gradle as their build system. The Spring Framework is one popular example of an open source project using Gradle. In this blog post, we will learn how we can configure an OpenShift Java project to use Gradle instead of Apache Maven to build the project.

Read full blog here https://www.openshift.com/blogs/run-gradle-builds-on-openshift

Download OpenShift Origin Virtual Image

In case you wish to download OpenShift Origin virtual image using wget and get the error shown below then you should use command shown below.

Connecting to mirror.openshift.com|184.72.214.144|:443... connected.
OpenSSL: error:14077458:SSL routines:SSL23_GET_SERVER_HELLO:reason(1112)
Unable to establish SSL connection.
wget https://mirror.openshift.com/pub/origin-server/release/3/images/openshift-origin.zip --secure-protocol=SSLv3

If you wish to use another name for the file, you can use –O option as shown below.

wget --O openshift_origin_3.zip https://mirror.openshift.com/pub/origin-server/release/3/images/openshift-origin.zip --secure-protocol=SSLv3

How to build Java WebSocket Applications Using the JSR 356 API

It is a well known fact that HTTP(Hypertext Transfer Protocol) is a stateless request-response protocol. This simple design of the HTTP protocol makes it very scalable but inefficient and unsuitable for highly interactive real-time web applications. HTTP was designed for document sharing and not for building today’s highly interactive web applications. HTTP is bit chatty in nature, as for each http request/response, a lot of headers need to be transmitted over the wire.

Before the HTTP 1.1 version, every request made to the server resulted in a new connection. This was improved in HTTP 1.1 with the introduction of HTTP persistence connections. Persistent connections allowed web browsers to reuse the same connection for fetching images, scripts, etc.

HTTP was designed to be half-duplex which means it allows transmission of data in just one direction at a time. A Walkie-talkie is an example of a half duplex device because only one person can speak at a time. Developers have created some workarounds or hacks to overcome this HTTP shortcoming. Some of these workarounds are polling, long polling, and streaming.

You can read full post at https://www.openshift.com/blogs/how-to-build-java-websocket-applications-using-the-jsr-356-api