Showing posts with label VIA. Show all posts
Showing posts with label VIA. Show all posts
Wednesday, December 7, 2011
Samsung Galaxy Projects Review - class 10
VIA is an Internet applications development course introducing to mobile web applications. VIA class number ten. We are slowly but surly approaching the end of this semester.
This time we had a class about security. This is one of the most important topics for any web apps developers. Unfortunately there is no special course on security in the curriculum and we could not afford to spend more then one class on it, too bad. Tomas Charvat prepared very condensed class reviewing the security. He has approached the first part from the point of view of a company CIO. Their main concern is the disaster recovery strategy and security. What is the security role in a company? What are the principal security guidelines and processes? The company CIO needs to answer these questions precisely and we have learned the basic approaches. Then Tomas listed the main security standards and explained briefly the history. Next we have looked at how to conduct security audit, penetration test and vulnerability scan and what are the differences.
The last part of the presentation introduced the most common types of attacks. Examples of DOS, SQL injection and cross scripting vulnerabilities were explained along with graphs of security incidents. Overall this was a great class covering the most important security aspects.
In the next class we are going to look at how to select the right hosting site based on the type of application, which will be pitched by Tomas Vondra. After that we will follow with the project presentation.
It is sad, but I have to report two of the fourteen teams broke. The teams stopped working on the projects. On the other hand there are signs that some of the teams will create nice working demos.
Tuesday, November 29, 2011
Samsung Galaxy Projects Review - class 9
VIA is an Internet applications development course introducing to mobile web applications. This is the VIA class number nine report.
This time we had one to one discussions. We have reviewed all fourteen projects. The overall findings are very positive. The teams are working and making progress. But we have found also some problems, which can be improved.
Some of the team members are contributing more and some of them less in all teams. There is always one person contributing a major part of the code. These are the leaders, they need to take the initiative and delegate certain tasks to the less active team members. This way everybody will contribute and more work will be delivered. Everybody in the team needs to contribute.
Many students were complaining about getting stacked on some weird problem. This is typical situation in programming and I have tried to persuade the teams to immediately report the problem. There are many PhD students and other teams who may have faced a similar problem and can help immediately. The problematic code as well as good and polished parts of the code need to be shared. This is the main reason why we have started our forum. We still have to learn how to work in a larger team and share the experience. The excuse for not asking a question is most frequently: "I do not want to be considered a fool asking a stupid question".
I need some help or advice how to unleash the activity and create an atmosphere of collective knowledge sharing. We need to stop spending time finding a solution for non-documented or ill behaving code. Any advice?
Next we have realized that some of the teams are really working hard producing a lot of code, but without dropping a line of progress or documentation. This is also a typical geek behavior, which is sometimes great. Some people really work hard and produce enormous piece of code, but very frequently the code needs to be later rewritten. I have requested to start the blogs as a space for recording the work items, as a space for planning the next steps, to not lose the focus. Only some of the teams are doing a good job. Reporting and planning is a key activity in many companies. They use many different special programs for tracking the development. We need to learn the art of planning and reporting.
Only few of the teams are using github or other RCS system for archiving code. Some of the teams use zip files – no, no, no. This leads to mess, it is difficult to find the latest code, this leads to lot of mistakes and misunderstanding in the group of programmers. We have to learn to use the proven practices and organize the work properly.
Some of the teams have tendency to add more and more features to their applications. This is also one of the bad habits of the novice developers. The opposite, constant search for the simplest solution is the right direction. It takes sometimes very long time to distill the simplest UI or the simplest code, but in many cases customers appreciate simplicity.
Overall, I think, we are doing great job and I am looking forward to see the first apps running. Keep up the good work. See the projects in detail.
Wednesday, November 16, 2011
Samsung Galaxy Apps Development - class 8
VIA is an Internet applications development course introducing to mobile web applications. VIA class number eight is here.
This was the fourth presentation about the Internet apps design. Filip has concluded a series of four preceding presentations of the web application design by putting it all together. The presentation started with repeating the server client paradigm, then he has listed various HTTP based server APIs. Filip is a strong believer of REST therefore he has spend quite some time explaining its advantages and simplicity. REST API is also the selected API style for our app skeleton, which is published on github. The validation, serialization and de-serialization and other processing are common in all web designs. Many different frameworks are helping designers implementing and unifying these routine pieces of code. We have chosen SPRING one of the most popular frameworks for Java. The SPRING configuration for an Eclipse web project is very simple and it saves a lot of coding. Filip has used the content negotiation, URI templates, message convertors HTTP method conversion and validators. The presentation ended with the discussion and demo code of the networking from the Android SDK. We have not managed to get to the C2DM communication during the class, read it in the presentation. Many code examples. including a simple Android app sending and reading text to and from GAE are available for cloning from github. Our sample code is not using the original Google RPC API, we are betting on a modern Java REST based code. Thanks to SPRING it is also very simple and high quality code. We believe that our code is combining high efficiency and simplicity. Enjoy it and let us know if you find any problems or suggest what needs to be improved.
See the presentations
|
|---|
Next Thursday I am getting ready with Filip to talk to all teams in one to one meetings. We would like review the stage of the applications development. I want to understand how the teams selected the minimal feature set. I'd like to see how far they are with the implementation. We will check the blogs and the weekly reporting. We also will be ready to help solving possible problems. I hope, we will see some early stage applications already.
Friday, November 4, 2011
Samsung Galaxy Apps Development - class 7
VIA is an Internet applications development course focusing on design of mobile web applications for students. VIA class number seven took place last Thursday. Half of the semester is behind!
Presentation number seven was about databases. Tomas Barina prepared an introduction of the database technology for web servers. He has reviewed the SQL basics and explained some of the specifics of the NoSQL database technology. Mainly he has focused on the Google App Engine data services: datastore, memcache and blobstore. New datastore with five 9s is the recommended choice. Then he continued with some APIs recommendations, there are two java choices JDO and JPA for GAE. Large part of the session was devoted to a sample code. Tomas has shown how to set the database, write the basic CRUD operations and how to test the code using a REST client and datastore/viewer. Samples of the memcache usage were also explained with some comments about efficiency. The whole presentation is giving complete advice on how to configure and use persistence in GAE.
See the presentations
|
|---|
The next session will put all three presentations together. The result will be a simple code for a web application running on a Galaxy tablet. The native client will display an entry field for name, surname and date of birth. The user will fill-in data and save them on GAE. The next “activity” screen will read the data from the cloud and display it. This final application will complete the web apps how-to. The whole code will be published on github.
We had two interesting contributions in discussion forum. Adam send a post showing how to use WiFi instead of the USB cable for the Galaxy tablet during the development. Very nice and useful, no wires cluttering the table. The second contribution describes an API for the university information system called KOS. Tonda put together sample code for authentication and data access. This is the starting point for all teams working on applications requiring the schedule and other data from KOS. Michal has published description of a small game on his blog.
I have reviewed the teams development sites to check the activity. I have found good and interesting progress. Happy meal team produced nice wireframes for their application.
Car share has developed lively video showing authentication, great job!
Conclusions: Some teams have made great progress. It looks like some do not like documenting. Some of the teams need to wake up and begin working. But overall, I thing, we are doing great job!
Saturday, October 29, 2011
Samsung Galaxy Apps Development - class 6
VIA is an Internet applications development course focusing on design of mobile web applications for students. VIA class number six (time flies) took place last Thursday.
Thanks to the generous Samsung donation all of us in VIA course work on the same software as well as hardware. The new Galaxy tablets are great and we are all excited. Most of the students are already getting familiar with the new capabilities. Tablets will become their primary target platform. It is great advantage getting the latest technology as soon as released. Especially in this case, tablets are changing the way we will use Internet. Playing with new gesture oriented applications on new screen format, with different capabilities opens new opportunities and ideas. Tablets have an easy and natural UI, but it still takes some time to get acquitted with it. For programmers it is not simple to switch from the traditional UI web design thinking to full screen gestures controlled environment. Of course the hands-on experience is essential. Samsung thank you, the new tablets will open new opportunities.
This time the class was about the Google App Engine. GAE will be our primary server platform. Fillip has done great job, check his presentation explaining high level the architecture, registration process, how to install the GAE plug-ins to Eclipse. One by one the screen shots with key sequences show how to install plug-ins. The presentation is completed by a simplest java servlet “Hello world”. Next pages are explaining how to use the GAE and how to develop an application along with the GAE administration console main screens showing statistics, logs etc.
See the presentations
|
|---|
All teams should be able to create Android native client and write a simple GAE servlet now. Next class will be about databases. What data services and what modeling and persistence APIs are available at GAE, how to configure the database. The hands on part of the presentation will show how to code a simplest servlet width doGet() and doPost() methods reading a storing text string to database.
The discussion forum is also starting to take off. Some good questions and post with coding and development hints are showing up. My ambition is to demonstrate students the power of the group work, the advantage of sharing and helping to each other. Crowd sourcing paradigm and social networks grew for the same assumption and are today the base of the most successful apps. Cooperation and communication are essencial.
I am looking forward to see the progress, therefore my next task is to check how the teams are reporting the development progress. I can not wait to see first apps "activities" on the tablet screen. Join us, look at presentations and ask questions if something is not clear. Help us improve!
Saturday, October 22, 2011
Mobile web applications development - VIA class 5
VIA is an Internet applications development course focusing on design of mobile web applications for students. VIA class number five took place last Thursday.
This time the class was about the native Android applications development. My PhD student Filip delivered the presentation. With his long experience in developing web client applications he is the best to introduce students to the art of designing web apps. He has started with creating the building environment. Our preferred IDE is Eclipse with some plug-ins. Filip has shown how to do installation and configuration of the guild system. The first sample Android application can almost entirely generated by the Google Android plug-ins. We expect the students to install all the tools and plug-ins and show the first application running in the emulator next week. Tough job, the emulator is pretty slow, but alas, we have a surprise for all the students. Wait till Tuesday for the oficial announcement … Next, the teams will have to select github or code.google.com source control system (SCS). All the projects will be open source and we will use the SCS for a sample code to quickly jumpstart the development.
Next Thursday we will continue with introduction to server side - Google App Engine. The goal is to have a simple sample code showing a web native application on Android with CRUD operations on GAE. In two weeks from today I expect students to demonstrate running sample apps saving and reading data from the web. These apps will be the basis for further development. We will do our best delivering the easy to understand presentations and consulting to help to all students overcome difficulties and make all working.
Using the computer science terminology: the teams concurrently work on validating proposed projects. One of the teams already pivoted, or more correctly, they have completely changed the application. Instead of building another social network they are planning to create a tool for remembering points required for getting credits and participation on seminars, very valuable for all students. It is the Foko team, the site is still not updated, wait ... They need to ask colleagues what exactly it is students need to record at school. In my view this is the right right attitude: something doesn't work let's switch to something different
Keep the fingers crossed! The schedules are aggressive! The teams need to deliver working apps. Stay in touch, suggest …
Saturday, October 15, 2011
Mobile web applications development - VIA class 4
VIA is an Internet applications development course focusing on design of mobile web applications for students. VIA class number four took place on Thursday.
We have finished the presentation of all the fourteen projects. All teams have created home pages and short description. The links are at our VIA projects pages. We can roughly break the applications to three categories.
Scheduling applications enhancing and simplifying access to our very complex university information system.
- The Manager Calendar group is betting on the idea of publicly informing about participating or skipping a class.
- The Via-Gra team offers a calendar/task application alerting users about school important deadlines.
- Eager programmers are offering combination of courses schedule with entering notes and links to study materials.
- The Day Team suggests almost the same idea.
- The Vychodniary project is designing aggregation of the study materials from slightly different point.
- Fellow Me team wants to improve searching for students and university stuff using all information on net.
- SocDev team is trying to design a students oriented project management application.
The second largest group of applications leverages the power of social applications.
- Party Pool and Foko Team have very similar idea helping to find events based on location and time.
- ShareTimeProject is trying to help friends sharing activities through their calendars.
- Car share is more or less a general application automating hitch hiking.
These applications are much more ambitious than what can be achieved in a school project. To create the critical mass of users nmaking the application useful is very difficult and takes lot of time and money. My suggestion is to design these ideas as Facebook application with the mobile UI.
The last group contains all the other applications.
- Happy meal wants to provide a list and scoring system for the university canteens.
- A great idea is an online presentation evaluation proposed by Via Team.
- Jamata team is offering games to kill free time.
Great, we have fourteen teams with a plan for an application. Next Thursday we will show how to install Eclipse plus plug-ins and explain a sample code. It will be an Android native application with single widget and a Google App Engine backend to store the entered data on server. Basically, we will use the Google suggested code. All will be placed on github to let all students easily download the initial source and start to experiment.
The next deadline for all teams is the October 27th. I expect the teams to present validation of their applications, explaining their experiments proving their apps ideas. This also will be the time to limit the feature set of all apps and set realistic targets for the MVP.
It is a lot of work in front of all of us, but I hope it also will be a lot of fun.
Thursday, October 6, 2011
Mobile web applications development - VIA class 3
This is the report from the third VIA class. Internet applications development course focusing on development of mobile web applications for students.
It was an interesting class today. Student teams were presenting projects proposals. CoreOfPoodle presented an app to quickly find the neareast cultural events. Eager Programmers team and Dynamic Core team are suggesting social web based application to organize free time. AdusMaraGoust Team introduced Car Share project desiged to search for cheap student travel. DEV-TEAM came with an interesting idea to share class supporting material generated by students accessible through a classes schedule. Sometimes it becomes very difficult to find friends and teachers at the university and the Fellow Me team is trying to make this simpler.
All teams set their home pages and those who have presented provided links to their presentation. Some of the presentations are in Czech but I hope, we fix this soon. All teams delivered good work presenting clearly what is their idea. We will finish the presentations in the next class.
Ok, we have some idea what to develop. But we only have hypotheses for an application. We must validate the proposed apps, make sure someone really needs it. How to do it? Teams have to test the hypotheses on their colleagues.
One way of doing it, is to create a paper mock up of an applications and test the interest, for example, in the university cafeteria. Asking students what they like, would they download the application, is something missing or what they do not need. All answers should be recorded, presented and then decisions need to be made. Other method is to create a web page, which is just showing a wireframe with some links. Route friends to the web and collect clicks with google analytics. Most frequently clicked feature is important, but be careful, it also depends on the web page layout, this experiment needs to be repeated with different layouts. Other methodology is to create a questionary and ask colleagues about their opinion. Some of you may develop a pdf mockup, with clickable links and run it on Android device to collect users response. The closer we can get to the final experience the better we can estimate the customers needs. In all cases we want to estimate what is the minimum features set.
Almost all of the applications are very ambitious. Some of the applications are only vaguely related to students needs. We will probably need to fix this. Keep in mind that most of the Android market apps are very simply accomplishing one thing with a minimum UI complexity. This does not mean the implementation is also simple. To destile the most important features and create a simple UI is the trick. This is the teams job now! Teams need to focus on reduction of functionality, implementing only what is necessary. This is probably the most difficult task.
The minimum viable products should be available just before Christmas and this is an extremely agressive target. We have to work hard ...
It was an interesting class today. Student teams were presenting projects proposals. CoreOfPoodle presented an app to quickly find the neareast cultural events. Eager Programmers team and Dynamic Core team are suggesting social web based application to organize free time. AdusMaraGoust Team introduced Car Share project desiged to search for cheap student travel. DEV-TEAM came with an interesting idea to share class supporting material generated by students accessible through a classes schedule. Sometimes it becomes very difficult to find friends and teachers at the university and the Fellow Me team is trying to make this simpler.
All teams set their home pages and those who have presented provided links to their presentation. Some of the presentations are in Czech but I hope, we fix this soon. All teams delivered good work presenting clearly what is their idea. We will finish the presentations in the next class.
Ok, we have some idea what to develop. But we only have hypotheses for an application. We must validate the proposed apps, make sure someone really needs it. How to do it? Teams have to test the hypotheses on their colleagues.
One way of doing it, is to create a paper mock up of an applications and test the interest, for example, in the university cafeteria. Asking students what they like, would they download the application, is something missing or what they do not need. All answers should be recorded, presented and then decisions need to be made. Other method is to create a web page, which is just showing a wireframe with some links. Route friends to the web and collect clicks with google analytics. Most frequently clicked feature is important, but be careful, it also depends on the web page layout, this experiment needs to be repeated with different layouts. Other methodology is to create a questionary and ask colleagues about their opinion. Some of you may develop a pdf mockup, with clickable links and run it on Android device to collect users response. The closer we can get to the final experience the better we can estimate the customers needs. In all cases we want to estimate what is the minimum features set.
Almost all of the applications are very ambitious. Some of the applications are only vaguely related to students needs. We will probably need to fix this. Keep in mind that most of the Android market apps are very simply accomplishing one thing with a minimum UI complexity. This does not mean the implementation is also simple. To destile the most important features and create a simple UI is the trick. This is the teams job now! Teams need to focus on reduction of functionality, implementing only what is necessary. This is probably the most difficult task.
The minimum viable products should be available just before Christmas and this is an extremely agressive target. We have to work hard ...
Friday, September 30, 2011
Mobile web applications development - VIA class 2
I had the second VIA class yesterday. Internet application development course focusing on mobile web applications for students at the Czech Technical University, Faculty of Electrical Engineering, dep. of Cybernetics, Prague.
The presentation title was "Steps to develop a web application". Our fist step was to create and organize the teams. It is almost finished. We have 11 teams with eleven projects. Most of the teams already created their home pages and blogs for tracking progress. I asked students to put an essay, high level description of the project, on their home page. The blog is set to track all development steps. I recommend to have two types of records on the blog. Milestones are two weeks jobs. Small tasks should take not more then few hours. I’d like students to write the tasks and mark who is solving what and when it has been finished. Breaking tasks to small steps is essencial. Marking progress is motivating and saves you from losing focus, (well sometimes)
Then we have started a small discussion trying to explain how to pick the right application. We brainstormed and discussed several suggestions. I have tried to explain what are the experiments to test the app idea. I have suggested what questions to ask other students to understand the usefulness of the app. How ask to discover how they will use the app. This is not simple but essencial before starting any development. I have tried to show some simple examples of the idea validation. I hope the sThis is precisely the set of problems I want students to focus on during the presentation. Their task is to present using experiments results what value the app will deliver to them, what problem is the app solving, and what needs it is satisfying. I have also briefly mentioned the Business model canvas and provided the wiki link for further study. The presentation was closed by discussing what is the Minimum Viable Product and, what is the set of minimal features. I have covered each of the topic very shortly, in depth discussion will require much more time and effort. Our class is more focused on technology but I thought this little excursion to business thinking is very important. Students need to understand and be motivated for the development of apps.
Next week we will continue with presenting the project ideas. Students are due to deliver an essay. Each team will get around 10 minutes and then we will discuss the idea.
Follow us on VIA pages.
The presentation title was "Steps to develop a web application". Our fist step was to create and organize the teams. It is almost finished. We have 11 teams with eleven projects. Most of the teams already created their home pages and blogs for tracking progress. I asked students to put an essay, high level description of the project, on their home page. The blog is set to track all development steps. I recommend to have two types of records on the blog. Milestones are two weeks jobs. Small tasks should take not more then few hours. I’d like students to write the tasks and mark who is solving what and when it has been finished. Breaking tasks to small steps is essencial. Marking progress is motivating and saves you from losing focus, (well sometimes)
Then we have started a small discussion trying to explain how to pick the right application. We brainstormed and discussed several suggestions. I have tried to explain what are the experiments to test the app idea. I have suggested what questions to ask other students to understand the usefulness of the app. How ask to discover how they will use the app. This is not simple but essencial before starting any development. I have tried to show some simple examples of the idea validation. I hope the sThis is precisely the set of problems I want students to focus on during the presentation. Their task is to present using experiments results what value the app will deliver to them, what problem is the app solving, and what needs it is satisfying. I have also briefly mentioned the Business model canvas and provided the wiki link for further study. The presentation was closed by discussing what is the Minimum Viable Product and, what is the set of minimal features. I have covered each of the topic very shortly, in depth discussion will require much more time and effort. Our class is more focused on technology but I thought this little excursion to business thinking is very important. Students need to understand and be motivated for the development of apps.
Next week we will continue with presenting the project ideas. Students are due to deliver an essay. Each team will get around 10 minutes and then we will discuss the idea.
Follow us on VIA pages.
Saturday, September 24, 2011
Learn how to build a startup - VIA class 1
today I'll tell you about my plan for the winter Internet Application Development course. I want to teach students what are the steps for developing a useful Internet application. I got a little inspired by Steve Blank LaunchPad. Today, many of our students work on their own projects and typically they focus on programming. Real hackers frequently fall in love with new idea or technology. They spend a lot of time developing, but only few of them convert the idea to a working product. In my course I’d like to help them to change it and in the same time learn what are the product development steps.
How do we operate? First I am splitting students in to teams of four. Each team must set up a web home page and write short essay describing what they want to develop. Next, they should use the home page to attract the users and check the idea. During the whole course I want students to track the development. We will use blogs or other journal like application. Documenting progress is always good practice. List of finished tasks is creating a good feeling of progress, it also helps to stay in focus.
Who are the customers and what do we want to deliver? Customers are all students of the CTU and we want to deliver applications making their university live easier. Since developers and customers are the same it should be easier to validate the product idea. Teams, students will test the product on students.
I am also narrowing the choice of application to Internet apps for mobile. There are many reasons, besides the sales numbers and popularity. Most important is that mobile apps are typically much simpler. They focus on one simple task. Small screen supports only easy UI. Simple, small and intuitive apps are our target.
I’d like to finish the semester with real working minimum set of features applications. To make the apps development as simple as possible we will offer ready to use sandboxes for Android and Google App Engine. This should quickly jump start the development.
What will the students learn? How to lead a project, how to organize the development, and how to create something useful and attractive for users. The most important take away is the hands on experience.
I do not know how the whole course will work out, are there enough ideas for applications, are our students inventive enough to pick the right set, do we have enough time to do something useful? There are lot of questions, but I am sure we need to search for new ways how to inspire students and help them achieving good results. This is my try. I’ll keep reporting about the progress. See the deliverables specifications at VIA web pages. Keep your fingers crossed, comment, suggest!
Subscribe to:
Posts (Atom)


