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: .

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.