DigiKam

Hello!

We are Adrian Niţu and Andrei Datcu, two students who with the help and guidelines of our mentor,  Veaceslav Munteanu tried to make our first, small steps into the great world of open  source by working for digiKam project.
What is DigiKam?
DigiKam is a photo editing and management software. It’s motto is “Manage your photographs like a professional with the power of open source”.  Because it’s a very big and important project, digiKam is divided into two parts: digiKam core and KipiPlugins, which is a backbone constantly extended and maintained  thus offering it’s users many features. It uses the following technologies:

  • C++
  • Qt

Our tasks:
Our first tasks, implied working on SendImages, TimeAdjust  and KmlExport kipi-plugins. Firstly, we had to add some labels and hints in the SendImages plugin, in order to explain unclear functionalities [1]. Our next tasks was to improve the TimeAdjust plugin. We had to add the option for a user to zoom using Ctrl+Mouse Wheel and +/-[2]. Therefore, following the advice of the developers we changed the class used for image display and replaced TimeAdjust’s original class with a common, shared class. This added not only the above functionalities, but also made the code clearer and improved it’s modularity. Also on the TimeAdjust plugin, we added a new feature, consisting of a progress bar to show not only how much of the task was completed, but also that the plugin is still working. The KmlExport plugin had an file convert bug.  Although as simple as a formatting glitch, it took us a while to find exactly where the bug was found.
Our second challenge was to try to port two plugins from one threading architecture to another. ThreadWeaver is becoming a powerfull standard in parallel processing, and the Digikam software collection wanted to take advantage of it’s strenghts. It was quite difficult trying to work for it as it involved rewriting a class entirely, and we were pressured by time as we also had some partial exams during that time. However, shortly before the completion of CDL we found out that somebody else had already completed these tasks, making our progress null and void. This made us sad, but it also served as a reminder that in the Open Source world we are never truly working alone.

Conclusion:
Although we did not manage to finish all our tasks, we now have the taste of open source programming. We have learned a lot of things, especially how to work as a team, for such an important project like digiKam.
During the CDL course   we found out the importance of code understanding and team work and, more important, that weekends spent at school can be fun.
[1]: https://bugs.kde.org/show_bug.cgi?id=268315
[2]: https://bugs.kde.org/show_bug.cgi?id=268317

 

Posted in Uncategorized | Leave a comment

OpenSIPS

Hi !

We are Vladimir Cernov, Bogdan Stoian and Szabolcs Orban, three students who tried to improve some aspects of OpenSIPS project, with the help of our mentor, Razvan Crainea.

OpenSIPS (Open SIP Server) is a mature Open Source implementation of a SIP server. OpenSIPS is more than a SIP proxy/router as it includes application-level functionalities. OpenSIPS, as a SIP server, is the core component of any SIP-based VoIP solution. With a very flexible and customizable routing engine,OpenSIPS ‘unifies voice, video, IM and presence services in a highly efficient way, thanks to its scalable (modular) design.

Our objectives were:

  • Implementing the XML-RPC protocol
  • Adding support for mathematical operations on float numbers
  • Implementing support for Sangoma cards

The first task implied the creation of a new module which would add support for MI commands from a remote computer, getting the results in XML format.   The old module used an old http library, which was not suitable for the future needs of OpenSIPS. A similar functionality (which exported results in HTML format) was already implemented, and it was used as an example. However, further work have to be done, as  the HTTP module itself needs to be improved.

The second task supposed creating a mathematical function for handling simple precision floating point expressions. The reason this project would have needed to be completed was reducing the overhead of calculating prices, which would have had a great impact on the community.  There were some difficulties regarding the understanding of the existing code-base, so we need more time to make that task functional.

The third task, implementing support for the Sangoma cards, would have also had great impact, as it would have allowed telephones (or end-points) with incompatible codecs to communicate with each other. The card is responsible for converting codecs, acting as a mediator between the end-points. The project has not been finished, as some technical problems have appeared that we did not manage to solve (the connection with the card could not be made, and we did not get a response from the manufacturers).

Even though the projects were not finished, we consider that working on it was a great learning experience. During our work, we have become familiar with understanding the code of other programmers. Additionally, we have come to acknowledge the real problems and obstacles that may appear during the development of a large-scale project. Furthermore, our team-working skills have undergone great improvement. Besides, we have been exposed to cutting-edge technology (such as Sangoma cards).

The fact that we did not manage to finish our tasks does not pose a problem, as we intend to continue our work after CDL.

Posted in Uncategorized | Leave a comment

Pidgin – A trip with a pigeon

Hello!

We are Adrian Bogatu, Cosmin Dragomir and Flavius Anton and together with our mentors, Valentina Manea and Mihai Maruseac, we took part in this year’s CDL course. Our main target was fixing bugs and/or making improvements in Pidgin.

Pidgin is an open source Instant Messaging client that supports a lot of protocols, thus providing access to different networks such as Yahoo, GTalk, MSN, Aim and even Facebook chat all in one application. It has a wide spread area among Linux users. It’s written in C and it uses GTK+ and libpurple libraries.

Because it’s all written in C and because the source code almost completely lacks commentaries, it was very hard to figure out how exactly we’ll make some improvements on the already existing code. We had ideas, we had our mentors’ support, but the implementation was far from easy.

The first thing we accomplished here was Ticket #2497 (Offline message should indicate that it’s a pounce [1]). We were very enthusiastic about our first improvement and we immediately send a patch to Pidgin’s developers, that also got accepted in a short time. It was cool to know that finally you’ve done something that’s visible outside your college and friends, it’s visible to all Pidgin users.

On the other side, the first thing that we tried to accomplish, but we didn’t succeed, was Ticket #121 (expiration date for buddy pounces [2]) which sucked all of us into the depths of the Pidgin pounces source code leaving us no chance to return. Therefore we lost a couple of weeks just reading and trying to understand what those C functions were doing, not being able to make something constructive. After a while we completely gave up and shifted our attention to matters not simpler, but less hard to implement.

Another thing that got our attention was Ticket #352 (Doodle Confirmation Dialog [3]). That implied modifying an already existing plug-in that assured a Doodle connection on Yahoo protocol. Although, at first glance, we thought that’s going to be very easy, we encountered a lot of problems on the way. Now, we had an almost completely working Doodle, but with small bugs here and there. That’s not a very big issue though, because we’ll continue our work, even if CDL ended.

Speaking of CDL ending, we really have to say it was a great experience:

  • We had our first encounter with a big open-source project and with its community.
  • We learned many new things from the presentations held during the course and now we are more confident about our skills
  • We made a lot of new acquaintances that have the same interests.

Besides, one important thing that we learned was that, sometimes, waking up in the morning on Saturdays can’t always be so unpleasant.

Finally, we want to thank again our mentors Valentina Manea and Mihai Maruseac because they helped us a lot after every course, on every hackaton. For now, we’re looking forward to going on a trip with all the people that took part in the project. That is the main reason everyone should enjoy this course – people.
[1]: http://developer.pidgin.im/ticket/2497
[2]: http://developer.pidgin.im/ticket/121
[3]: http://developer.pidgin.im/ticket/352

Posted in Uncategorized | Leave a comment

AWoUSO – In Omnia Paratus

Introduction

Hello! We are Dragoș Badea, Paul Săpunaru and Mihai Zamfirescu. During the Spring Edition of CDL v5.0, we have been working on the “World of USO for Android” project, alongside with our mentors, Irina Preșa and Alex Eftimie.

Project Description

As you might know, World of USO is a browser-based game dedicated to Computer Science students at University Politehnica of Bucharest. World of USO for Android is a project aimed to port the game to the Android platform, while retaining as many of the original features as possible.

Technologies used:

  • Java
  • Android SDK
  • OAuth
  • XML for layouts design
  • Eclipse IDE with the Android Development Tools (ADT) plugin
  • Git

Requirements for running the application:

  • a device running Android 2.3 (Gingerbread) or newer

Story

The project started as quite a challenge, since none of us worked with Git, nor Android, before. One of the greatest difficulties encountered was implementing the client-side OAuth protocol, as part of the authentication process (OAuth is also used by companies like Google or Twitter). After a few weeks, though, we got the hang of it, and things started running smoothly.

Conclusion / Thoughts

Dragoș
How often can one willingly wake up early Saturday morning, without regretting it instantly? Not many times, trust me about it, but this was one of those occasions. The community is one of the main reasons why CDL was such a nice experience; talented and humorous people, making every course both interesting and fun.

Paul
What did the Community and Development Lab mean to me? Well, it was my first
extracurricular activity of this type and I have to say that it was an intriguing experience. I had the pleasure to come in contact with great people willing to share their knowledge and passion for a certain subject and I found each presentation (technical or about social skills) particularly interesting.
Overall, I am really glad that I was accepted to join this fun and supportive community.

Mihai
CDL is many things – you get to learn a lot about Git, Python, Vim, etc. But, what really stands out is the community – you get to play Laser Tag, hack your friends’ project, we’ll even go on a trip soon. And that’s what makes it awesome!

In the end, we would like to thank our mentors, Irina and Alex, for introducing us to this project and helping us throughout the CDL journey (and poke them about that promised beer).

Posted in Uncategorized | Leave a comment

DEX Online’s Hangman

What is Dex Online?

DEX Online is the bigges online Romanian dictionary, one of the most important Romanian websites.

Who are we?

We are Ion Octavian Năstasie and Alexandru Ciprian Fărcășanu and we are thrilled to present to you our achievements, the fruits of our work during CDL 2012 spring.

We received lots and lots of support from our mentor Mihai Bărbulescu and from the founder of DEX Online, Cătălin Frâncu.

What did we use?

We used web technologies like HTML, PHP, Smarty templates, CSS and JavaScript and MYSQL is used as the database engine.

Our contribution

The problem that caught our attention was Ticket #257, Linguistic games, we felt is was important for DEX Online to retain visitors for a longer time, to make the website more than a place where people searched for the meaning of a word. We wanted the visitors to engage more with the website and to teach them new things in a fun and interactive way. We choosed to do a Hangman game, because we felt it was an iconic game that would make great use of DEX Online’s database.

First we had o get ourselves familiar with the code, smarty, and the database. Neither of us had to much experience working with web technologies, so this was the hardest part, figuring out the best way to do the things we needed for our game. We had lots of help from Google, DEX’s source code and of course our mentor.

When we felt we had a decent game we asked people to test Hangman and give us feedback. we got a lot of constructive input from our fellow CDL coleagues (Android guys :P ) and we made improvements. we pushed our code upstream for review and in the review process we saw that there were things that we didn’t think of and that there were better ways to do some things. It was an interesting experience.

Conclusion

It has been a great time, and we have learned a lot of new and great things, especially the process of writing code for a large project.

We have also met interesting people, but the most important thing is that we made our contibution to an open source project that is used by milions of people and we hope they will enjoy our game.

The only downside  is that it is over, we still have lots of ideas and improvements for Hangman 1.X, but, well, I guess there is always a Hackday for this.

Posted in Uncategorized | 1 Comment

CUBRID: project overview and impressions

Writing a whole new database backend from
scratch is
left as an exercise to the reader.
(from docs.djangoproject.com)

We are Mariana Mărășoiu and Camelia Groza and together we took part in this year’s Open Source Development Course – fall edition. Our mentors were Andrei Jancă and Cătălin Ciobanu. They guided us the whole time and helped us stay focused and motivated when things were going slow.

The main technologies we worked with are CUBRID (an RDBMS whose features include really fast processing of parallel requests) and Django (a well-known open source web application framework written in Python) and our purpose was to build a bridge between the two. For the last nine weeks, our goal has been to develop a Django-CUBRID compatible database backend.

A great deal of effort and patience were put into studying the way a backend works and relates to the rest of the Django core. Due to some similarities between CUBRID and MySQL, we used the later implementation as reference along the way. Some of the issues we worked on can be found at [1]. The source code can be found on Github.

At the time being, our backend is mostly functional. Of course, there are still some issues that need to be treated and bugs to be fixed. Our current references are the Django tests and we are planning to make sure that all of them will pass in the near future. In the long term, our goal is to publish our project as a viable 3rd party backend for Django.

As the words about the technical side of the project have been said (or rather written), let us share our impressions about CDL & Co. :)

One of the most important things that we learned during this course is the necessity of facing an issue with patience and an open mind. When you feel like it’s simply not going to work (like, ever), then all you have to do is work a little bit more and you’ll start seeing the light at the end of the tunnel. Plus, you may have our luck: a good partner to keep you motivated and take the difficult tasks while leaving you with the easiest ones :D . Joke aside, working in a team proved to be easier and a lot more fun than working alone.

Last but not least, apart from the knowledge and the experience we gained, we had the opportunity to interact with a community of passionate people. Even though, for the first couple of weeks, waking up early in the morning on Saturdays wasn’t the first thing we had in mind, by the end of this course we grew fond of everyone involved. We are grateful to all the organizers, mentors, guests and colleagues and we are looking forward to the next time we will go out for a beer. ;)

[1] https://projects.rosedu.org/projects/cubrid/issues

Posted in v4.0 | 4 Comments

Kate::XML plugin @ CDL 2011- fall

Hello we are Deaconu Ioan, Popescu Florin Marius and Cosmin Mihai and we worked at Kate project alongside with our mentors  Adrian Lungu and Diana Tiriplica.

Kate is a text editor for every distribution of Linux. Our task was to create a plugin for  xml that should do 3 things: to indent and format, to see if the xml code is written correctly and to jump between a pair of tags ( form starting to a closing tag, and vice versa).

Kate is written in C++, and uses Qt alongside with KDE libraries.

We had no idea how to implement the algorithm, but thanks to cdl and our mentors, who previously worked on Kate to improve it, we manage to understand how to create the plugin. It wasn’t easy, especially because on the first contact with the code we though it will be impossible to create it, but cdl though us that nothing is impossible, everything can be done, if you believe in it.

Downsides:

  • Kate documentation is badly written. It is very ambiguous, hard to understand, it has no example of code, or the examples are just a reference to a code existing on other sites.
  • Because of the difficulty of understanding Kate internals,  the project got a very late start.

Upsides:

  • We got our first contact with the open source community.
  • We improved our team working skills.
  • The presentations during classes were more than welcome.
  • Learning new technologies like Qt, KDE Api, C++.

Now that the 2011-fall edition is ending, we are glad and more than thankful to CDL for choosing us to be a part of this amazing project.

Posted in kde, v4.0 | 1 Comment

Unknown-Horizons at Rosedu CDL-fall 2011

Hello !
This is our post about what we have accomplished here at CDL .
About Unknown-Horizons
Unknown-Horizons is an open-source game that resembles the Anno and Ceasar series. It is available on most desktop platforms : Windows, Linux and Mac-OS.
The engine it uses is FIFE isometric engine and the source code is written in Python.
About us
We are Stefan Bucur and Razvan Mincu, two students at the ‘Politehnica’ University of Bucharest. We are both interested in gaming and interface designing, so this project was really “meant” for us.
Project Development
As we mentioned above, the game uses the FIFE engine which is written in C++, and it has Python bindings, so our development language was Python. We barely knew the language at the start of the course, and it’s been quite a learning experience for both of us.
We had to implement a new interface for the diplomacy, because the old one was too simple.
The first weeks the project was really intimidating, but soon we got used to it and learned how to get around.
We’ve met with the project developers on their IRC channel (almost) every Sunday and presented our status updates.
Right now we still have a little more work to do, but we will continue contributing to the project even after CDL.
Conclusion
CDL was a great experience, we’ve met a lot of interesting people that were very passionate about their work, and of course, our colleagues were great as well :) .
And who knows, maybe we’ll be joining next year as mentors.
Posted in v4.0 | Tagged | Leave a comment

DEX Online at CDL 2011-fall

  • About DEX Online

DEX Online is an online Romanian dictionary collection widely used , about one million hits everyday. Thus it is very important for us to contribute to this interesting project that helps all of us with precious information.

  • About us and CDL

We are Constantin Serban-Radoi  ( a.k.a. Costash) and Vlad Traista-Popescu. As you may know the 4th edition of CDL, the Open Source Development Course is at its end and we are thrilled to present you our final results and overall impressions.

Our mentor Alex Morega,  the co-mentors Mihai Barbulescu  and Razvan Botea and last but not least Catalin Francu the founder of DEX Online were very helpful with the tasks we were working on and for that we are grateful .

  • Technologies used

We use technologies for web like HTML, PHP, XML, Smarty template, and even JavaScript + CSS for some individual add-ons and applications.

Also MySQL is used for the database held on the server.

  • Why did we join this project?

We joined this project because we felt that it will be interesting and this will be a great opportunity for us to learn something new, that is going to help us in other future projects by gaining valuable experience with web programming.

  • Our Contributions

The first thing we began to work was the Ticket #241 – Finding clones of the site. At this ticket we had to accommodate with the coding style and read some examples from the entire project. Then we encountered some challenging issues that once solved made us feel proud and learn from mistakes.

Another thing we finished was the Ticket #69 – Definitions in XML. Here we already learned from the previous ticket and it was easier to write clean code.

Even if CDL is going to end on 17th of December, we will be maintaining the written code and contribute more.

  • Conclusion

It has been a great pleasure to meet enthusiastic people that like what they do and can make us feel the same.

 

L.E.: Our presentation (in Romanian) can be viewed at [1].

[1]https://docs.google.com/present/edit?id=0AXvd-FD4McHYZGNnZ243ZHpfMWdtbWMzOGdq

Posted in v4.0 | Leave a comment

ixCode @ CDL Fall 2011

Hello!

We are Sorina Sandu and Mihai Tiriplica and during CDL Fall 2011 we worked on ixCode, a tool used for generating functions’ diagrams created by Mihai Maruseac who is also our menthor. Basically, it parses the source and returns a list of instructions for each function. Using this list, it builds a tree where every node contains a block of instructions. Than, it generates a .dot file translated to .png using Graphviz. At the moment it only knows C, but as a future project it may learn any other language.

Our tasks were to improve the way diagrams are made and to add support for C++ and Python. Unfortunately we were only able to complete the first one. Following our menthor advices, we changed the entire graph construction by convincing each type of instruction to generate its own nodes and add them to the tree. We encountered some problems for jump instructions, we had a lot of ideas and most of them were proven to be wrong. In the end, we decided to treat jumps like ordinary instructions and after the tree was built to link the nodes properly.

In the beginning we didn’t know anything about Python, Dot or Git so during the first weeks we knew what we were supposed to do but had no idea on how. We focused on learning and getting used to the project and when we finally got it 1/3 of the time was gone. At that point, we actually started to write stuff which seemed to work right and was linked to the project. By the end everything was all right and we managed to bring a contribution.

Nevertheless, CDL was not only about technical knowledge, it was a great social experience for everyone. We had a great time during the courses as well as when we were going out or meeting to work on the project. Also, we found non-technical presentations to be much more interesting than Mihai ever dreamed of. We did stuff such as “hunt the bag!” or “tell me something from the dark side about you” which until than, not only we couldn’t find their meaning but also would never belive they could be fun. Furthermore, CDL was extremely motivational and gave us a hole new point of view.

For now, some personal thoughts:

Sorina:

Saturday was the only day of the week when I wasn’t bothered by waking up in the morning and going to college.

Mihai:

Saturday mornings will never be the same. Thank you!

Posted in v4.0 | Leave a comment