Sunday, January 20, 2013

eClub Summer 2013 plan

The fifth series of eClub meetings starts in February. eClub wants help creating new teams and introduce them in the essentials of building new business. The teams will compete for the best startup plan awards in the middle of May.

We will surprise you with a lot of changes. We are moving out of the CTU classrooms to new Era Svet rooms at a really distinguished place right in the heart of Prague at Jungmanovo nam. It is also a great place for networking and enjoying coffee after each presentation. The meeting rooms are equipped with projectors, speakers, and cameras connected to Internet. This will simplify streaming and recording. We plan to stream our sessions to cooperate with people from the whole Czech Republic.

Currently we are putting together a plan, see the eClub page. This year I am not alone. I am happy, that Jan Vesely is joining me in preparations. He is bringing in the economical and marketing perspective, which is important for technologist. We had a lot of discussion about what should be the presentations directions, what are the hottest problems or question. Finally, we agreed we will concentrate only on two observations. The first observation is people want to get connected.

We have decided we will try helping all eClub friends, students and young graduates to meet, create new teams and starting new business. Mainly we will focus on in the IT segment, but other segments are welcomed too. Most of the students of the technical universities have good programming skills. but they are lacking the business insight. The schools of economy students are on the other hand searching for example for programmers. All of them need graphical designers and many other skills to work on new ideas. eClub is the place to get all of you together. The networking will be an integral part of this year events.

The second observation is, students do not know how to systematically work on creating startup. We have been discussing how to change this. Finally we have decided to loosely follow the well known lean startup strategy.  Not a big surprise, but lean startup works.

We hope, people will meet and form at least preliminary teams during the initial networking. They will come up with some business idea. The eClub meetings then will walk them through the basic steps of turning their idea to real business. The presentations followed by exercises. Between the educational presentations we will throw also motivational presentations by some of the successful entrepreneurs. We wish and hope the teams will finish the whole course with a plan for making things happen. They will show what they learned in the presentation day. in front of a panel of judges. The best teams will get a great award. We work with several industrial partners raising money and we hope, we will collect enough to send the best team for a stay in one of the US incubators during summer. We also plan to award the second and the third team. We are happy to invite everybody who wants to be part of a new team as well as those who already have teams. Basically there are only two simple conditions. The teams need to have at least one student in this academic year at any Czech university. Teams already awarded i other competitions are not allowed.

This is the first information, if you have any question contact us. If you have a suggestion let us also know. If you have some friends in a company, who can help us funding our events let me know too. Sent this blog link to all your friends who may be potentially interested in our endeavor, especially those outside Prague. Everybody is welcomed to join. We want to put together programmers with economists, marketers, graphical designers, there is a place for everybody. Stay tuned there will be soon more on our pages. In the mean time look at our new YT video. See you in eClub.

Sunday, January 6, 2013

How we build a cloud Android applications

I would like to present a tutorial for building mobile cloud applications, which we have developed with my colleagues during the three month Internet Application Development course at CTU. I will overview the selected technologies and why we selected them. If you like to build our sample application, refer to the details in the final presentation.

Customers as well as industry are demanding stable and robust mobile/cloud applications with user friendly UI. Mobile applications are taking advantage of the sensors in terminals, computational power and all information in the cloud. Number of smart phones is rapidly growing as well as the number of mobile apps. These trends were for us the key motivation for the course and for the selection of a sample application. It is a Android app storing the client data in the cloud.

There are many different technologies to choose from. What are the key components of the sample app?  Here are our choices. The Amazon EC2 API is the de facto standard in the cloud API. The educational accounts on Amazon are free, but students are required to pull out the credit cards ... Thanks to we can use for free several servers  in their infrastructure and it made our decision simple. We have decided to use the Eucalyptus cloud operating system. Its API is very similar to EC2. Application server is Tomcat 7 providing the java sandbox. An obvious choice is the MySQL as a database. We run all on Ubuntu 12.04. The client side is a native Android client also in in Java. The Android SQLite is used as the local storage. Client and server follow the REST architecture.

Our students are running different operating systems on their notebooks – Windows, Linux, OS XW, therefor we had to make some decisions to unify the development. We have decided to leave the code development IDE on the native OS. We recommended  the Eclipse, which coves all our students variety of OSs. The run time unification is not that simple. The reason is that we wanted to provide a step-by-step command description and they are OS dependent. The virtualization is the answer. We will use the Virtual box and an image of Ubuntu 12.04.

We sticked to the most widely used model the REST architecture for the sample application. The source comes with a Maven pom file to build and deploy the final war file. The code can be downloaded from Github. It provides the simplest CRUD functionality accessed through the REST API. Students cloned this code to their workstations as a starting point for testing and debugging their own modifications

To further simplify the development we have chosen to use Vagrant nicely managing the images in the Virtual box. Vagrant installs the Chef solo in the VM, which takes care about the provisioning. Chef proved to be a very simple and useful saving us lot of troubles. It uses cookbooks and receipts.  The whole provisioning process is reasonably fast and simple. Vagrant ssh, and IP forwarding allows to further tweak the installed components from the command line and executing some configuration and initialization scripts for MySQL before starting the app war.

To test the server part we use a simple Chrome plug-in HTTP client. It enables us to test the whole REST API, modifying headers and having the returned data nicely displayed. Excellent not only for demonstrations and teaching!

The final step was to move the application war file to cloud, to Eucalyptus. For this purpose we have installed the Eucalyptus command line utility euca2ools. After exchanging the public keys all commands for instantiating VMs in the cloud are at hand. Eucalyptus provides the IP address of the VM instance. We have again used the Chef solo to install the same pair of Tomcat and MySQL and we used the same process for provisioning and testing as in the local VM.

We have decided to design the client on the Android platform. All tools are available for Eclipse. The applications apk files are easy to distribute. Second, thanks to Samsung we were able to give to our teams bunch of Android tablets for development and testing. The Android application development compared to the server part is much more self-contained. The only non standard action is to install Samsung drivers on Windows to run the debugging and testing on the target tablet. The Java code and development are well described with programming examples at Google pages.  For our purpose we have provided a more complex sample of code. For most of the web applications storing data in the cloud is  essential to use data cash on the client to handle connectivity problems, therefore we have shown the use of the basic SQLite. This time  the DB configuration etc. is part of the code. You also will see some threads handling the background operations in the example. If all works fine, you should be able to run the whole app from your Android device.

At the end of the course students delivered 10 demos, pilot working applications. Most of the teams used the suggested technologies. Some of the apps work on both tablets and phones two.

If you are interested in details or follow the sample development look at the presentation. It provides links to the sample code and shows step by step the building commands. You can cut and past them and follow what we have done. You should be OK except for the Eucalyptus part, which requires creating an account. You can instead use the AWS with almost exactly the same set of commands. This sample application is only a bases for building real applications. We show the installation and usage of development technologies, which are state of the art and useful for serious design. Many required details are missing, but you can start your project with something running. We will continue improving the presentation and add more functionality, other front ends etc. The course took three months and we have been step by step introducing the technologies to our students, therefore take your time and enjoy the details to gain full understanding.

Good luck and let me know about problems you have encountered. I will also welcome suggestions.
Enhanced by Zemanta