Tuesday, August 23, 2011

Software development democratization and eClub

I am preparing for the next season of eClub thinking what is the best way to introduce our students to the art of starting their first own business. To experience the joy of having customers who use your applications. In this blog I will focus on business on the Internet, which thanks to the technology development got very democratic and therefore it is very easy to enter for all of us.
Yes, we are living in a great time. The cost of a notebook is constantly decreasing and every student owns one. Beside great ideas and commitment the computer is probably the only required prerequisite to start an Internet business. Most of the other required components are available very affordably or for free. What more, to buy the computer you need your savings, but to run the business in the cloud you can pay as you go and only for what you use, no upfront investment is required. It scales as you need. The cloud is spreading (this is meant positively) and the web services as AWS, Google App Engine, Heroku are easy to access and use for hosting your apps. You can find several services (Bitnami, Turnkey, Fluxflex, on the web enabling you to install well know open source packages as LAMP stack, Wordpress, Joomla, MySQL, Moodle, RedMine, etc with a single click. Check also the Rightscale one of the most popular tools for running cloud apps. To organize your office (email, calendar, documents, ...) you have a choice of Office 365, Google Apps, Tungle, Zoho,... To complete the company administration you can find many different accounting systems and project managing packages.
A successful business needs bright developers and tools to create the best product, but the most important is the sale. With the advent of cloud many business and marketing channels have emerged in the cloud helping you in reaching your customers and selling the product. Well known are the iPhone and Android markets offering hundreds of thousands of small apps. Google and Apple introduced Web Stores. SaleForce is also very active. These channels are helping developers to offer their applications to customers, sell them and collect money for a reasonable share on the sale. If you do not like the big shots, you can  proceed by your own, there are on the web organizations taking care of the whole sales lifecycle handling the credit card, issuing SW license keys, handling tax world wide, for example Fastspring. Monitoring customers and marketing is the next step in growing the business. Very popular is the Google Analytics. It will give you very good insight to you apps and web traffic and help you with effective marketing. Many other services exist for advertising your product.
All this is available to everybody and it means it is very easy to start today than ever before. Most of the students are very good programmers and have great ideas for new applications. eClub is here to motivate and empower students to make their dreams true. eClub is subsidized by the CTU MediaLab foundation supporting the best students teams with scholarship. You will meet experienced people to discuss and advise you with the business development.  At the end let me share with you my secret wish: I would like to have by the end of the academic year 11/12 at least one alumni team who will attract thousands of users to their new application.
Join us in the next season of the eClub. Start to work with us. We are opening in September. Watch our blog and web pages. Get first batch of customers, …

Thursday, August 18, 2011

eClub Winter 2011

soon the school will start again and this is the right time to begin planning for the next round of the eClub. They eClub sessions will start from September and they will be again supported by the department of Cybernetics and the CTU MediaLab foundation. Last year most of the students were from the Faculty of Electrical Engineering. For the winter 2011 we want to attract students from the whole CVUT.
What is the current plan? I am preparing a series of 13 sessions. As usual I will open with an introductory presentation announcing this year competition for the best startup project. I want to put together again an international jury selecting three to five best projects. The winners will be awarded with a scholarship to start their projects.
I am in the middle of putting it all together and there still will be some changes, but let me introduce first speakers and sessions. In the last week of September we will take advantage of Hubert Palan visiting Prague. He will share with us his experience of studying at UC Berkeley and then creating his own startup. He works for GoodData now. His presentation will be an introduction to Silicon Valley, the center of startups. In the next session I am planning to give the opportunity to the winners of the last competition, the EasyWall team. They spent three months in the Silicon Valley Plug And Play accelerator and there is a lot to report. They have taken many videos and made lot of interviews. The next winners went to the Technical university of Copenhagen and took Innovation and Creativity “In search of the Blue Ocean” summer school and I am sure they have a lot to discuss too. I want to have one presentation focusing on the “soft skills”, particularly on organizing your work as well as your life. Jan Matejka will be teaching you how. I also hope we will attract Jakub Nesetril, the founder of apiry.io. He will share with us his experience from the SpringBoard accelator in Cambridge (UK) and will also tell us how to get the initial funding. Jan Sova owner of the WorksWell company will present his experience in starting a company in the CTU incubator and will come up with a list of initial problems you should avoid when starting a company in the Czech Republic. I am personally looking forward to meet Karel Janecek CEO of RSJ Algorithmic Trading who promised to join us for one session. The most important for those who will compete for the scholarships are the presentations of your business plans and then the final demo presentations.
I am sure there will be still some more surprises but this is the first draft of the winter eClub sessions. Stay tuned. I’ll be back soon with more messages, ….

Tuesday, August 9, 2011

No vacation


Most of the students are enjoying vacations, but not the winners of the eClub the EasyWall team - Tereza, Vojta and Pier. They are in California in the Plug and Play Tech Center meeting with a lot of interesting people, networking with other startups, participating in discussion and watching interesting presentations. Their calendar is full of interesting meetings in Silicon Valley. They have their video camera with them shooting great video clips. Watch some of their vlogs on facebook and read the blog.
Four students from other eClub top teams are in the Copenhagen University College of Engineering, Summer School taking part in Innovation and Creativity “In search of the Blue Ocean”. They are reporting: it is no vacation, we will have to work here. Maybe bad news for them but we are looking forward to see what they learn. See the picture of the group in front of the Copenhagen University building.
I hope they all will prepare for us interesting presentations in the next eClub meetings.

Tuesday, August 2, 2011

Research proposal

With Filip we have submitted a proposal for a research grant. We want to look at new ways of designing the web apps server side. Here is the abstract.
Businesses need making the web applications development faster and cheaper. There are many RAD tools focusing on fast UI development, but much less attention is paid to the back end. Our target is to develop new RAD tools for easy API authoring. The usage of the web object oriented architectures, e.g. CORBA, DCOM, SOAP (SOA) is decreasing because of quite large code complexity. Instead, internet developers are preferring the principles of REST, described by R.T.Fielding. His RESTFul approach is based on information representations, resources, composite resources etc. We use REST APIs for our applications for quite some time and we noticed things are repenting. Filip than came with this idea: a simple declarative Domain Specific Language (DSL) is enough to define information representation and resources. This sounds great because it simplifies a lot the whole design. In addition, choosing declarative approach has much deeper theoretical implications. The web server design is for us no longer object oriented. We are dropping the current procedural programming paradigm. In our further research we are taking the Resource Oriented Programming (ROP).
At the moment we are building test applications to prove our assumptions and see what are the problems. What functionality is the most frequently required for building web business applications? What is the best information representation? How to generate and describe effective APIs? How to reuse existing web services? How to derive composite resources? How much more easier is a graphical interface? Many things can be tested and we are eager to play with these ideas and see how far we can push it.
I will report about the progress.

Thursday, July 21, 2011

Eucalyptus is running

Finally we have managed to make our Eucalyptus private cloud running. The first matlab scripts processed thousands of pictures. It took us quite some time to make this happend. We had many problems with network and routers configuration, with NFS, disk overflows etc. All typical network computing problems, most of them solved by now. But we are happy we are producing useful results on computer which were so fare idling.
The current cloud setup is used for number crunching only, for image processing. Each experiment is described by a matlab script.  There is currently available only one machine image, which includes installed matlab. To start and control execution we have developed a SaaS application uploading and managing the experiments. It also works with AWS. We are running the application on the same box as the cloud server. It is written in R&R. The UI is designed for inexperienced users. The application messaging is build on top of the RabbitMQ. The input and output files are read and written to and from users subdirectories over NFS.
Further development is still needed to make the cloud much more efficient. We need to include some monitoring to control the usage of the cloud. We need to optimize memory, networking and speed of execution. We need to control user access etc.
We have successfully proved, that we have chosen the right solution. Our first test user managed to use the system almost immediately and produced useful results. The next step is to add another two user with no experience and collect all complaints, wishes, bugs etc. to continue in the development of the controlling application and make the whole system stable and robust.

Friday, July 15, 2011

CCC + Google

Vojta Jina is a Google employee, who is finishing his MSc in our Cloud Computing Center (CCC) at CTU. Vojta is big fan / promoter of JavaScript and Test Driven Development (TDD). At Google he works on an open source project AngularJS. AngularJS is a great platform for building web apps, written in JavaScript. In our center he works on a HelpDesk client application. We plan to publish the HelpDesk application as an open source example showing how to use AngularJS. Actually, we have larger plans with HelpDesk and I am planning to announce them soon.
I am supervising his thesis and I am really looking forward to start the real work. So far we have several times discussed the topic and Vojta is already doing the preparatory studies. The JavaScript development and especially AngularJS is heavily relying on TDD. Test function is a must for every new functionality. The code is repeatedly tested during the whole development cycle. TDD is the only way how to keep larger JavaScript applications under control. The problem is even larger, different browsers use different JavaScript interpreters, with different behavior. Therefore we need an engine testing all interpreters during the development. There are some testing engines with this capability to support the development, but they are not covering the whole problem flawlessly. Our vision is to design and implement new testing engine satisfying all developer's requirements. This is the grand idea of Vojta’s thesis. We are going to put the code to public domain and I'm looking forward to inform you about the progress.

Monday, July 11, 2011

Tonda + Tomas = 8

We are eight people in the Cloud Computing Center. Tomas and Tonda our students have joined us today and they are already enjoying the world of web applications. It is their first university year, but they are already experienced programmers. Their first design was a very successful robot, which they have build at a middle school.
Together we have started a development of a web-based application with a native client for Android.. The server site will run on Google App Engine. The client server communication will use REST API. Filipe has done the first preoperational or organizational step, he has designed a git server where the code is saved. The second step is to develop a very basic code for the server and client application and display some small piece of text on Android. We hope this will work on Friday. I will announce the application very soon
I am looking for students interested in iOS for Apple mobile devices.