Saturday, May 8, 2010

Fr, 7th May - Final presentation

Today was the final day of our three weeks internship at TU München. We finished our project phase by giving a presentation which was filmed by Mrs Demmel. She helped us really a lot and spent a lot of time on taping our presentation and will also is going to edit it afterwards.
This presentation is in our oppinion a good way to finish our project phase. We were reviewing the whole process of our work and also created a website which makes it just possible to improve the activity weMakeWords for the OLPC in future. Finally we also have two proper working versions of our activity: of course the one for the OLPC and also the kind of necessary windows version. So we are very happy to have such a round and well-ordered result.
We are going to expand and improve our activity in future, too. But news will not longer be posted at this blog-website. Instead every further changes are reported on our project site
http://sites.google.com/site/wemakewordsolpc/.
In nearer future, to be precise tomorrow, we are going to leave Munich. Looking back at these three weeks we spent here we can say that it was a really great time. Lots of experiences, many impressions, talks with many people we met ment both a very interesting and enriching internship and also a very enjoyable stay at the heart of Bavaria.

Friday, May 7, 2010

Thu, 6th May - Lots of documentation

Today we spent our whole time on creating materials which document our project and our work on it. On the one hand we wrote a summary (in two versions, one shorter and one longer) and created a presentation about our experiences during the internship. On the other hand we created a project site at google sites: http://sites.google.com/site/wemakewordsolpc/, wrote a tutorial which actually describes our way to make an activity work in very detail (http://codingforolpc.blogspot.com/p/guide.html) and are going to place our source codes at google code. Hopefully someone in future uses our materials and is therefore able to create his own activity. Also these steps are necessary to make a continuation of programming in future just possible. Also our coaches are involved in our project site so that we can continue our cooperation.
Tomorrow we are going to continue documentation (UML diagram, some content for our new web page, etc.) and we will do our final presentation tomorrow. We are a little bit excited about it but hope that each part of our presentation just works well.

Wednesday, May 5, 2010

Wed, 5th May - beta - release

Today we finished the development part of our project. Finally we created two seperate running versions: One for windows platform, one for the OLPC.
During the last 24 hours we spent a lot of energy on adding some nice features, some animations and of course creating nice graphics. This took some time but we guess paid out. Thanks to a lot of people who published pictures they have taken under the Creative Commons License we were able to find a few quite beautiful ones and put them together for our activity. Following the license we mention the names of all authors of pictures on our startup screen.
Today's coding was rather relaxed. After managing a portation of the almost complete project we were able to repeat this procedure today and get everything to work.
In the final phase which we actually entered today we try to finish everything and bring it to a proper end.
So we are going to spend next two days completely on documentation. On friday we will finish our three weeks at TUM with a special highlight. We are going to present our results during a video taping session. So afterwards we will receive a short video featuring us and our project - and of course the XO.
Also there are few more tasks to fullfill - such as: creating presentations, writing documentation - probably a tutorial for other OLPC developers or people who are interested in this subject, updating UML diagram, adding (more) comments to source code and ... .
So all in all we are looking forward to our video taping session and are still working on the finalization of our program.

Tuesday, May 4, 2010

Tue, 4th May - Really Running

Today we managed actually two portations. First we made our program run on the emulator and later on on the real XO. During this we experienced that the resolution of the XO is much higher than we thought. It seems that we have to change few things a little to solve this problem. At the moment we are very busy performing all changes, adding some animations (for example an animation for a finished symbol) and searching for nice pictures which are published under the Creative Commons License.
Tomorrow will be our last day of development. Thursday and friday will be spent on presentation and documentation. So we try to do our best and push the ongoing of the project as far as possible. Hopefully we will get something to work!

Monday, May 3, 2010

Mo, 3rd May - presentation and continuation

Today we spent our time on two different aspects. On the one hand we presented the progress of our project. On the other hand we worked hard trying to get our already on windows working (!) version working on the OLPC.
This morning we visited together with Mr Haeussler, our teacher for computer science, Mrs Matthes and had a little chat about the ongoing of our project. Afterwards we presented the current state of our project and talked about opportunities to continue it.
But what is exactly the current state of our project? Since last week our project has experienced a lot of changes and improvement. All of our classes are working properly together. User interface exists and is completely usable. Also Bots are added which interact with the player. Symbols and strokes of which they are consisting are dynamically loaded according to a txt-file - our dictionary "database".
So right now our next task is to get all this existing stuff working on the XO. Today we started doing this - and already experienced some problems concerning namespaces. But by now it seems that we found a possibility to solve this problem and are looking forward to get it done.
In best case we would be able to present at the end of this week three different versions: Singleplayer - non-XO, Singleplayer - XO and Multiplayer - XO. In worst case we should have at least the windows version working. Friday we will see what we managed to create - probably somehow an average case :-).

Friday, April 30, 2010

Fri, 30th

Today we reached very much, which you can also really see. We connected all of our classes and nearly have the menu ready. Our game screen is ready and you can already place some strokes on a demo symbol.
Right now, everything seems to work the way we want it and we are really looking forward to finish the stand-alone-version very soon.
One of the problems we had during the last days - that instances of the same class using an attribute always used all together the same memory address, which means that the value of the attribute changes for all instances when you change it for one - has been solved by simply not writing the attribute in the usual place for attributes in the class definition, but declaring it in the constructor so that it is created with the instance and only for this instance.
We also used events for the first time so that we can now scan the input for the important signals and  e.g. show new buttons when a first button was clicked.
Happy is the right word to describe how we feel about today's and this week's work.

Thu, 30th April - Busy

First of all: We have been very busy today. On the one hand we continued our project and workend intensively on the implementation of our classes. On the other hand we participated in the lecture EIST held by professor Brügge and were engaged in the ice-breaking challenge of the "iPhone-Praktikum".
Let's start taking a closer look at our project. We are still working on the stand-alone-version for windows. Mainly because of two reasons: First, both of our laptops came as common with installed windows OS so it has become our development platform. Second, if the portation to the OLPC would fail, we also had another version which works. This would be a slightly better result of our project phase than having no clue what to do get just anything working.
Our current target is to get the windows version working. Then we are going to do some necessary changes according to the special features of the OLPC. Then we will test our activity in the simulator and afterwards on a real XO. We really hope that our activity will at this moment work. Because debugging on the XO can become really difficult because the only feedback we get from it is wether the activity starts or not. That is so far our roadmap for the OLPC coding.
EIST lecture in the morning was interesting and covered aspects which are helpfull for our project, too. Especially for the documentation of our program using UML.
The icebreaking challenge of the "iPhone-Praktikum" started at half past three in the afternoon. Its target was as usual for icebreakers a better team bonding. Today every team had to build a tower out of paper, balloons and some other stuff. Afterwards their towers were judged in different categories such as height, beauty and weight which can be placed on the top of them before they break down. Our job was to help the organization staff as good as possible. After the awards show our day ended enjoying some BBQ.

Wednesday, April 28, 2010

Wed, 28th April - Coding Session

Today's progress is easy to tell. We started our first real coding session to implement what we designed in UML yesterday. The block containing dictionary, symbol and stroke is nearly ready from our current point of view and all other classes have also experienced large steps forward. Our dictionary is able to read a .txt file which contains the information about which files have to be loaded. The goal of the game is to compose a chinese character for an animal out of single strokes or packages of strokes. So our .txt file contains the name of the animal, the path of a background image and the paths of the single strokes.
We also learned a lot about lists, inheritance, python functionality in general and the pygame package.We experienced the advantage of coding a stand-alone version because testing is very easy. Pygame works quite well on Windows so we think that we will be able to transfer our version to the OLPC comparatively doable. At least... we hope it :-)

Tuesday, April 27, 2010

Tue, 27th April

Our guideline for today: Analyzing the Objective-C-code of the original program and understand what's going on behind the scenes. We also do this by reviewing the UML class diagrams of the existing documentation.
Afterwards we hopefully are able to build a class structure which is able to imitate the functionality of the original program.
Right now it looks as if we are going to design some new procedures and kick other ones out because they do not seem necessary to us.
So far for this morning, work will continue after lunch.

And here is our evening report: We decided to code a program without the aspiration to have a fully extendable and portable program because we think that this cannot be done in the two remaining weeks of our project phase. So we analyzed the functionalities needed by the program to work properly and built a new class system from scratch. After developing some ideas with pen and paper we decided to have it digital. Visual Paradigm Community Edition seemed to be a good tool for this job so we decided to register and download it. Our first result can be seen underneath this text.


Further on we found out that .png pictures containing transparency are still displayed correctly on the XO so that we can use this effect to overlay pictures. Additionally we decided to first code a version working on a Windows system because we want to built and test the program itself before we start testing the compatibility with the XO.

Finally we can proudly say, that we have been featured by another web-page, which is the blog of Felix, who had the idea for our project and supports us from time to time: http://kaserf.blogspot.com/ .

Monday, April 26, 2010

Mon, 26th April

Hello out there,
our first progress for today did already appear not just at the end of the day, but directly after lunch. We are able to show our own graphics in the OLPC emulation. Let's hope for some more good news!

And there they are: We continued to learn about PyGames, found another good tutorial ("Jones-RapidGameDev") and now believe to be ready to start our own program. Right now we really want to thank all those guys who wrote programs before, because already existing programs are the best way to see which code causes which effect.
At the moment we are still looking for a method how to install activities on a more elegant way than now. Currently we use SFTP file transfer to push the .xo files onto the "disk" of our emulation and then install them using a manipulated homepage.
Because we now want to tackle our real project, we start reading the documentation of the WeMakeWords iPhone project to understand its functionality.
That's it for today!

Sat, 24th April - weekend

Weekend is to relax and not to work too much, was what we thought when planning our Saturday and Sunday. So we got up late and visited the presentation of the Robocup which took place in the faculty for Maschinenwesen, close to the building for mathematics and computer science. After seeing some of the runs, which included two without any mistakes, we decided to just keep on relaxing, which meant a walk around in the city for Max and a little simple chilling around for Björn. Later on we decided to do some productive work again so Max managed to reproduce Thursday’s success, even expanding it. This means that we are now able to show our own activity icon and also our own program name without mistakes.
So far by now, more news will be there soon.

Fri, 23rd April – Not really working

After having visited the first lecture of EIST yesterday, we had EIST today for the second time. It was quite interesting to see what we already talked about in computer science lessons, but also to see, how fast things are done in university for which you take hours in school. Because our coach Damir had told us yesterday that we even would not need to show up in university at all we started working quite relaxed, maybe a little bit too relaxed, so in the end we did not really progress. While Björn started writing the blog, Max tried to reproduce his success from Thursday when he managed to get our own “Hello World”-program running on the OLPC. But our project did not reach a new success.
Although we had told us in the morning not to work too much, we finally stayed in university till about 6 o’clock.

Thu, 22nd April – Long day, first program

Hello again!
Today we had a very well-filled day with lots of different tasks and happenings. Firstly, we were very happy to get the opportunity to say hello to the whole team of chair Bruegge. In a familiar atmosphere we were given a very warm welcome.
Secondly, we heard our first ever lesson at university. We participated in EIST (which is the German abbreviation for introduction into software engineering) with lots of other students. Mostly interesting topics were discussed in a very imaginable way and it was kind of fun.
Thirdly, Max managed to write an executable hello-world-program which was a great success for us.
And fourthly, we visited the second kick-off meeting for the iPhone practicum, which again included having buffet and a short trip to the Campus Cneipe afterwards.

Wed, 21st April – Alright, let’s go

We started into the first day with our own project with a really high motivation to tackle all appearing problems. Very fast we found out, that we in fact need this motivation. The OLPC Wiki gave us useful advisories what to do. Both of us use Asus Laptops with Vista OS so we need to emulate the OS of the OLPC in order to have a possibility to test our program without transferring it to the original OLPC. So today, our first job was to find a working emulation and a possibility to make programs run on it. Additionally we planned to get first ideas how python works, the script language which most programs for the OLPC, usually called activities, are based on. So we had much to do.
During the morning we read several wiki entries about the OLPC, the Sugar UI and programming with Python, until we decided to use the concept “learning by doing” and installed a package including the emulator QEMU and an image of Fedora 9 (a Linux Distribution which is the OS of the OLPC) with Sugar on it. We caught a version, where there was not even a single activity pre-installed. After some trying we found an image where there were many pre-installed activities. To know how to transport our own programs into the emulation we started searching for ways to transport the data. Our first idea was, just to open the .img file of the emulation and insert our own files, but we did not really find any program that would do exactly what we wanted. Felix also told us that this is not a good way to do. So after some reading we again found the important information in the OLPC wiki. With the program WinSCP and some code changes in the responsible run.bat we were finally able to get a connection via SFTP from our host OS to the data system of the OLPC system.
When reaching this we recognized that it was already late and we decided to call it a day and stop working.

Tue, 20h April - Today we are going to make a decision!

Either we design an "app" for the iPhone or we create an activity for the OLPC (One Laptop Per Child).
An app for iPhone, iPod Touch or even iPad always has someting shiny, nice and pretty. Development seems slightly doable because of the comfortable IDE XCode which also comes with a built-in emulator for a few Apple-devices. So why just think about the other option?
Of course we are going to do our very best in the following weeks and work hard at the realization of our project. But possibly it would be quite cool to have the opportunity to continue our work even after the end of our internship (Damir mentioned this a few times). So the one problem with the creation of an "app" was that XCode exclusively runs on a Mac which we unfortunately do not own.
On the other hand we liked the idea behind the OLPC: giving the possibility of getting in touch with education to children of poor countries and being part of a big open-source-project.
Finally we decided to choose the OLPC as our target platform, because of the ability to keep on working after our internship, but also because of the idea behind.
But by now we also needed to find a project to work on. Mainly we thought about two different options: creating a project using the OLPC-activity eToys or designing our own activity - probably kind of a small game. So we gave eToys a try but soon recognized that there must be even more interesting projects out there. So it was clear that we are not going to spend three weeks on eToys but it was not clear which project we will be tackeling during our internship. Luckily Felix - who helps us from time to time - had the great idea to do a portation of an already existing project which is called "We Make Words". This game is a collaborative learning game for children. Its main target is to make children aware of the advantages of teamwork.
We are very happy to have found a great project to work on and are looking forward to get the most out of it!

Mon, 19th April – Let’s start something new

Today we had our first “official” day at the TU Campus Garching on Monday. We met Mrs Nastaran Matthes, responsible for the student advisory service for computer science. She gave us a cordially welcome und afterwards led our way to Damir Ismailovic, who was planned to be our mentor during the next three weeks.
We got a quick tour through the chair by him and learned about the actual projects they are working at. He introduced us to Rebecca, another pupil, who is cooperating with the chair to write her seminar paper about collaborative learning games and also programming one especially for physics with the title “Physimons”. Until we went having lunch, we started a brainstorming session with her to gather some new ideas and to get an impression of what the program could look like in a final state. In the end there were some really good new ideas which Rebecca wants to use for her project.
After lunch, Mrs Matthes led us through the whole building, which includes the faculties for mathematics and computer science and showed us the most important things we should know. After that we had a break. During this, we used the time to have a look at the famous Allianz Arena.
But after all the impressions we had collected so far, the highlight of the day was still missing. At five p.m. there was the kick-off meeting for the “iPhone practicum”. The chair for Applied Software Engineering offers this practicum to students who want to experience developing software solutions under real business conditions. Real companies have some problems they want to be solved by the students. Because there were so many companies wanting to participate there were two kick-off meetings, one on Monday and one on Thursday. After the companies had introduced their projects to the students, there was a buffet and the chance to talk to the representatives to get to know each other or to gain some more information about the projects.
Finally, a short visit in the Campus Cneipe with the other ones from the chair finished our first day as interns at the TUM.

Hello World!


Today we, Max and Björn, start our blog about our internship at the TU München. Our school organizes a project phase between the written and the oral exams we need to pass for our Abitur. We do our project at the chair for Applied Software Engineering, which is held by Prof. Bernd Brügge, Ph.D.