Sunday, January 22, 2012

Galaxy projects, applications - report


Thanks to the Samsung Galaxy 10.1 tablets donation I was able to start several projects with our students at CTU FEE. I would like to review our applications, give the status report and explain further plans in this blog.

I used the tablets to support the students in two different directions: degree thesis projects and education.

Theses
The 3C is a home for 20 PhD, master and bachelor students. They all work on various aspects of cloud computing and SaaS application design with the emphasis on the mobile applications. The work is organized as described in the "How to organize web project". Here are the major mobile applications:

Weather forecast widget project implements Android widget displaying the weather forecast using the ALADIN model for the Czech Republic. It installs on Galaxy tablets and Android phones too. The presentation layer development still continues. The application is fully functional available through the Android market and gaining popularity.

Browser Guru is an application helping the user to select the best browser for current type of connectivity. For example for the 2G, 3G/4G connectivity the Opera browser is faster than the default browser. On the other hand when on Wi-Fi the default browser provides higher comfort. Browser Guru is also compatible with the voice search (Most browsers are not). It can be used for tablets as well as for phones. Application is fully functional and available through the Android market. It has almost 24 000 downloads up today.

Menzy CVUT application has been designed for students of Czech universities. Currently it lists the CTU students canteens everyday menus. It enables students to quickly find the menu of choice and rate the foods. The application has more than 700 downloads and more than 500 active users. Application itself is built as a platform allowing to import other canteens menus. Get in touch with us, if interested. Application is fully functional available through the Android Market.

Cloudcardz is an application aiming at business cards exchange. While networking, at conferences or events we exchange business cards. They are then piling on our desks and we do not remember what was the occasion, whom we met and and how to quickly convert them to a computer. This application allows quick exchange of business card data using NFC or QR code. The app contains only pointers to personal data. Change of a phone number or other data is automatically updated. Some more development is required. The pilot will be available soon.

We started developing a simple helpdesk application more or less as an educational demo. It allows sending a request ticket to an operator from a mobile device including photo and the location information. After sending the request to the helpdesk, the application creates a ticket, which is handled by an operator. The conversation continues between the operator and the user till the ticket is resolved. We continue working on it  and it will be finished in May 2012. It is more interesting, that we have derived other  two apps from the original code.

The helpdesk functionality will serve to businesses getting orders through a job search  portal. The business to customer interaction is very similar to helpdesk. Typically, craftsman communicate with customers after working hours when they get to the office. This application will enable them to give offers to customers by smartphone. This app is also scheduled to be piloted with customers in the May framework.

The next app derived from helpdesk code was competing in this year eClub. It is focusing on supporting sales. The scenario: shoppers in the store download an app  by scanning QR code. After garment selection the shopper takes a photo and saves it on a store portal. Information about the picture will be send to customer's friends to comment. This application is in the development and the first working pilot version is planned for end of May.

czSMS is an application enabling sending free SMS messages using the free Internet SMS gateways. The app is developed for multiple mobile platforms using the Phonegap platform. It is in the early development stage. All the technological and supporting issues has been solved and the design is beginning with the UI and wireframe design. The pilot application will be available end of May 2012.

Education
Total of 60 students took the Internet Application Development course. The goal of the course was to teach students to develop web Android applications. Students learned how to use the standard Eclipse IDE and the Google plugins for Android and App Engine. They were organized in teams of four persons. Each team came with their own app proposal. All together the class was working on fourteen applications. Teams had to maintain a web page for the project and track the development. I have organized two demo classes where students were presenting their progress to get class comments and suggestions. The semester was concluded with working pilot applications.

Three months are too short to create full featured app, nevertheless I expect, that some of the students will further working to finish their projects.

Summary
What are the benefits of the development? Three applications already on the Android market and several other applications are scheduled for May. The current activity and the mobile applications development created awareness and high visibility at our university and in media too. I am hoping that the development experience will attract more students  to pursue their projects. Most of the university staff is aware of the development too and became interested. Some of the department want to join us.  Currently we are designing new course for students in the first year of study.

There are also things we need to improve. The biggest weakness is the graphical quality. Great graphics and usability are very important for the customer perception. We are actively looking for a partner who will help us. We are ready to support these groups with  tablets to enable their creative powers and motivate them to cooperate.

It is quite difficult to develop a new application. Many different skills are required and it will still take us some time to develop really successful with hundred thousands of downloads and clear benefit for users. The weather widget is probably the most advanced, also the Menzy and Browser Guru apps are finding users. There are many other applications in the development with the targeted date end of May. Stay in touch and help us improve.

Saturday, January 14, 2012

Galaxy projects, applications part II


Thanks to Samsung we have started with our students working on the latest Samsung Galaxy tablets.  Currently we are evaluating the first batch of VIA projects. The experiment number II starts now. The first year university students of Open Informatics program will receive the tablets and the task is the same. Be inventive, hardworking and have fun. Develop an interesting Galaxy tablet application. 

How are we going to be organized? This time the projects will be part of the Java course. The students learned the basic Java programming in the winter semester and they continue in the advanced Java course. One of the course requirements is to deliver a Java project and we will create it on Samsung Galaxy tablets.

Why tablets, why Android? Many consider the tablets the new very fast growing segment. Currently there are 4.3 billion mobile devices in the world and this is more than TV, fixed lines or PCs. Tablets are introducing new user interface unleashing new application design and capabilities. The UI is easy for everybody much more natural. This all is opening new possibilities. The new tablets are a great chance to work with the latest technology. On the other hand, keep in mind, that the tablets are not laptop replacements they focus on everyday users, not programmers. We still have to discover how to take full advantage of them, how to address the largest number of users.

Is the Android good platform to learn Java programing? First, Java is the primary programming language for Android apps. There are lot of application examples in the open source. The programming environment IDE plug-ins are greatly simplifying the development. Google is providing better and better support to developers. All these are reasons to motivate students to learn new skills. It is also a great opportunity to get creative and invent new applications and introduce new ideas.

I believe, that programming is a combination of an art and discipline. It requires quite some time to learn a language. Mostly it is a self-learning process. The learning curve is steep once you have a good motivation and this is where I am stepping in. Let's enjoy creating something new on the latest technology and have fun too.  

What is the timeline? I am happy I can start working with students early in their university education. There are many interesting disciplines where they would need programming. My mission is to show students the opportunities for inventing and turning their ideas to real products. I hope, some of the students will join us during summer working with us or completing their own projects. Every summer we offer the best students an university internship. Others with strong idea and motivation can join the eClub, learn the art of creating startup and compete for winning seed money. For a freshman in the first year it seems to be terribly long to start working on a baccalaureate thesis, but it is round the corner. Working on problem oriented projects early will help them learning all the necessary skills to write great thesis. 

I’d like to organize our work similarly as the VIA course. We will run all as projects see the previous blog. We will keep all in English. Why? We need to cooperate with our colleagues. The world is huge, but Internet connects us. Many students around the world are like you and we need to communicate with them. We keep all on the open Internet, to let other comment. This is a good source of advice. Openness introduces good attitude and cooperation. I will encourage all students helping each other and use all possible resources. I will leave space for all students to come with their own ideas not only for the projects. Think what it is you want to create. How are you going to change the world? Think big! Internet is democratic.

I am looking forward to see the students creating new exciting stuff! Any questions? Send me an email and ask. Join us!

Saturday, January 7, 2012

How to organize a web project



This blog shows how to organize an Internet project. What needs to be in place before you start coding. The essence is simple. Come up with a good idea, set the team with strong commitment, formulate the minimal functionality, create an Internet site, communicate, use simple work flow management and start coding. 

How big team do you need? You can start alone, but the best is to have one or two friends with a complementary expertise. The diversity of views is great and it yields innovation. Besides, it is also great to have someone for discussing the problems and making decisions. The team must be excited about the project and committed to make the things happened. Team allows you sharing the joy of the development. Discussing and arguing with the team is always very rewarding. Of course, there are also very successful “lonely rangers” on the Internet. They need to master the art of outsourcing to complete all project tasks.

It is very important to communicate and discuss your idea. Even if you have not written a single line of the code inform your future customers and friends. They will tell you what they like and what they want. Don't be afraid someone will steal your idea. There are many other people on Earth with the same idea, but the team with the best execution and strongest commitment will win. You also do not need to be the first. Sometimes the second mouse gets the cheese.

To inform your friends you need to be seen on the Internet. How to do it? Start with finding a descriptive  name for a project. Check if the domain name is not taken yet, many sites provide this information. Select the domain carefully, once the page views start to grow it is too late for a change. Set your home page. Don't program the web from scratch. There are many different sites where you can create the homepage for free and in a matter of minutes. Go for the bigger players, they stay around longer. Use some of the stock templates to achieve an eye appealing look. To personalize your site create a project logo.

The key for success is a good idea. Your web must clearly communicate the idea, it must state what you are offering. The idea needs to be well formulated. Keep it simple! The resulting application or service will be offered to people like you and no one wants to study complicated stuff. Define your audience! What are you solving and who will use it?  Your project description, explanation must be short and crystal clear. Check it by putting together a sentence like this:

(project name) is developing (this offering) to help (an audience) solving (a problem).

This sentence is the core message on your site. You can put on your page more detailed explanation or further thoughts, but an essay, mission statement or a vision shouldn't be too long, two, three paragraphs at maximum.

List the team members with photo. Each person should describe previous experience, successes, awards, interests etc. Inform about the project progress. To get customer feedback provide contact information. Do not show personal phone numbers or mail addresses. You don't want to be woken up at 3:00 AM by some Argentinean geek wrestling with an obvious problem.

Before you start coding you should have a plan for implementation of the project. Start with the description of the minimum functionality. Product, the result of the project, needs to be very, very simple. To development of even the simplest product will take quite some time and requires a lot of effort, you will be surprised. No matter if it is an one-man show project or several people will cooperate, you need to get organized. The purpose of organizing is to not loose focus, stay productive and see the progress. There are several project management tools available such as Pivotal tracker,  Campfire etc. To maintain the project with such packages may be too much overhead for a starting team and a simple blog might serve at the beginning.

You have to learn regularly recording the progress and set the next development tasks. Report at least once a week. The progress records will help you learn how to more accurately estimate duration of the next tasks. You will learn better planning. From leading many projects I know, that planning small tasks is much better than larger milestones. Create tasks in duration of few hours. Sometimes the task turns out to be too big and needs to be broken to several smaller ones. No problem, record them to your work flow system and continue. If you work in a team set regular meetings to check the progress. The meetings don't need to last too long. 15-20 minutes are OK. Each team member should report the progress, inform about the problems and suggest further steps. Meetings and communication create good spirit in the team and push the project ahead.

Once you have all the above in place you are set to go ahead. Here starts the regular SW development process.  Select technology, select revision control system, set the build system… Remember, only good discipline in running the project will bring good results.

I am working with university students teams and in all my activities I try to follow the described process. I am leaving on students to chose the portal and development technologies, but I am insisting on setting the reporting tools and generating the communication. The described rules are very simple but when followed they stimulate the team to develop organizational habits. Our students usually have great or good programming skills but very low awareness of how to run and organize projects and of course, no hands-on experience. From my industry experience the organizational stuff is equally important as the programmers quality. I also know, that the business processes mustn't suppress activity and enthusiasm. The managers need to discover a balance.

This simple system based on free Internet tools support sharing, creating traction, exciting other groups, and finding other followers. It is also allowing me to follow the teams progress and help them when required. Also reporting the activities of all teams on my pages is very simplified. I can provide links to all projects and all is for free, except we have to do it. Best of all, I hope, this operational habits are setting a good example for the future project development of my students. I try to keep all on the free Internet to let anybody to comment, help us or join our efforts. Of course, this is with the students consent. See the links at the main menu of this blog.

Let me know if you have comments or suggestions for improvement.

Monday, December 19, 2011

eClub winners


The jury sent the votes, we put the results together and we have announced the winners in the winter 2011 series of eClub. Join me in congratulating to all the winning teams.

The first price summer semester scholarship of 15k CZK goes to the Avocado team. The second price goes to InstantStorm with the summer semester scholarship of 10k CZK. And the third price is 5K CZK and goes to CloudCards team. All teams will receive a mentor to help them in starting the entrepreneurial career. The CVUT MediaLab will provide all scholarships.

Big thank you goes also to all the jury members. They have done great work in evaluating all the teams. And I am concluding with inviting you for the next eClub, which will start in the second half o February. Watch this blog and eClub pages and join us.

Wednesday, December 14, 2011

Final presentations - eClub


eClub is finishing. We met for the final round of presentations on Monday 12.12. Twelve teams were presenting their projets for startups and competing for prices. We will announce the winners next Monday 19.12.

The crowd was huge. At least sixty people gathered for the finals. The atmosphere was great. We started with introducing jury. Next we drew the order of presentations. We also had to add two last minute teams to the competition. This time 12 teams were competing and it is four more than last time. Also, based on the first reaction of jury, the quality of presentations was higher. We watched several short YT movies. The graphical appearance of presentations was great, we have seen several very interesting and eye catching shows. Also the content was according to the recommended format: team members’ introduction, the problem statement and suggested solution. All of them paid close attention to monetization, marketing, addressable market etc. It is clear that all participants have learned how to present. All presentations with short annotations are on eClub pages. Thanks to the Meta TV, who worked with us the whole semester, we will soon have on our pages the presentation videos. They will hlep to the jury members who did not make it to the final presentation. It is also for our overseas members.

The number of new emerging competitions is growing world wide as well as in our country. Some of the teams had already tried their luck elsewhere. We probably should allow competing only teams with no award from other competitions. Next time we also need to watch closely the clock some of the presentations were too long and the whole meeting took almost three hours. At 9:30 the university concierge kicked us out reminding us on the closing hour (9:00).

The best news: CityAdventures team competing in the last eClub is close to launch their product. The EasyWall team has pivoted and it is now running Meta TV company. Some other students, who were competing last time are part of new startups. Great, and I hope we will see more and more startups growing  from the university environment. Watch us next year, currently we are preparing the program.

Overall, the final presentations were big success: lot of people, good quality of presentations, more projects, better focus. Come next Monday we will announce the winners. Misko Hevery from Google Mountain View will follow with a presentation about the Trends in IT. I am looking forward to see you on Monday!


Sunday, December 11, 2011

Barcamp Prague



Yesterday I joined the Barcamp Prague. Over hundred developers from the whole country got together to discuss development of mobile applications. People were giving short presentations along with discussions in the nearby rooms.

The series started with NFC and the Google wallet discussion, very interesting and very important for the contact-less payments. The typical problems in mobile UI development were discussed and demonstrated in several presentations. One of the focus groups discussed the difference between native and web based mobile applications. Developers presented different views with a lot of details about the progress of browsers capabilities on iOS and Android. Phonegap framework seems to be the best choice for developing a multiplatform applications. Many discussions focused on HTML 5 details. We have also seen some sort of promotional presentations such as Toast masters presentation. I also liked an overview of how to use mobile phones for advertising with examples of SMS and augmented reality usage. There were many more interesting applications, this is just a sample of what caught my attention.

During the day I have met lot of interesting people including some of my students. I gave a short overview of the VIA classes and the eClub. It definitely was worth of the time and I will try to join next time again.

Friday, December 9, 2011

Misko Hevery, Google, Trends in IT


Misko Hevery, top Google developer is coming to talk about future trends in IT industry. We will meet at the CVUT, Karlovo namesti 13, KN:E-301 on Monday, December 19, at 18:00. 

Misko is leading the AngularJS project. It started as a one person 20% project and it turned to a Google official project today. The project is growing also thanks to other two fellow citizens Vojta and Igor from Slovakia. All of them are very passionate about their project, just look at what is the AngularJS mantra: "What HTML would have been had it been designed for web apps". See the tutorial and examples.  Misko already gave two AngularJS presentations while he was visiting us in March. In this Christmas time he will share with us his visions of the future trends in IT.

Before the presentation we will award the winners of this year eClub competition. If you are interested in seing the competing teams join us on Monday December 12, at the same address.