Milano Conference and Stuff

Merhaba,

“After more than a month later(Yes I am a little lazy. Yes A LITTLE) Milan Conference I find some time to write a blog post. I wrote something on plane while returning home this is the computer written version of it. Was a little sick and some things have to dealt with in my school. So enjoy :)”

 

After the conference at Milan I wanted to share my experiences. This is about observations and thoughts about conference and some speech people made and some general things about Milan, Italy and Cultural things.

So -

It was my first global Free Software/Open Source conference. I joined a few local conferences in Turkey before but this was first in that big scope. I wasn’t expecting learning this much from a conference. It was one of the greatest experiences of mine.

I joined both hackatons. Solved a bug with Siqi and Florian, get some pointers to implement Expert Config page a search bar from Kendy and about Collaborative editing from Michael. The most important thing is I feel more self-esteemed and more ambitious about being a LO hacker :) .

For a person who has visual memory it is good to meet people and match faces with names. My social skills are not great in English. So I was a listener mostly. Need sometime to think and understand the things. But speaking need much more time. Much much more time. :) I had this time when returning back to home. And have some thoughts and here is a great place to tell them :)

 

Disclaimer: Completely personal ideas! It means may contain some unrelated and/or wrong parts. Feel free to comment or Ignore.

 

I have some thoughts about CloudOn and their focus on OOXML. They are focusing on OOXML and interoperability with MS Office because and this is a great thing. But it is also great for LibreOffice too. Lets have a look how things work in my country. Not speaking about companies, it is my friends and family. People use MS Office mostly(over %95 maybe ?). Most of them are pirating it, so it is free for them(!). They are completely happy with it and don’t need anything else. It is “the original”. They don’t care the rest. When I tell try LibreOffice and don’t pirate software, they generally try it. But starting to compare it with MS Office immediately. When they encountered a problem, raging immediately and never use it again.

Because of the MS Office is “the original” for them, they don’t even try to use ODF. So my way is telling them to use LibreOffice and if you find a problem. Try old MS formats first. The old binary format filters are more mature then OOXML. And this is better way to encourage people to use LibreOffice. They rage less often this way. After some time later using LibreOffice, I start to recommend ODF. So with this way my friends are using LibreOffice for their daily usage.

This is great especially for students like me, small companies, teachers etc etc. I think key part of the migration for this kind of people is OOXML interoperability. For bigger companies use Office programs so much story might be different.

But it is not enough. LibreOffice has a great community. It is also a growing community. We need great features like remote control apps for smartphones(hold on, we already have this great apps!!! ;)), collaborative editing as well as the interoperability. And some small things that matters too much to the end user.

There are a lot of opportunities to work on LibreOffice. Tons of easyhacks for people new to development. There are tons of design work going on for people interested in Graphics. Also of course you can tell people about LibreOffice. :)

There was a lot of talks during conference. I was on Development track mostly. As I said I was mostly a learner during conference. So I don’t have much to say about other talks. :)

Also thank to organizers for giving me this chance and thanks for the cool t-shirt. :)

 

Stuff

 

It was my first abroad experience. And this doubled the excitement :). Architecture was great on streets. People are mostly like us, I find too many common things. People mostly don’t know English. Learning a few words to ask someone the way is helpful. A lot of words are looks like English. Also someone can speak Turkish also can pronounce Italian words easily. There is not much to see in Milano maybe but you should see Duomo, Galleria and la scala. I couldn’t but you should go see the Castello also. And if you have time, walk to your destination and enjoy the architecture on streets. :)

Cheers.

[TR]

Türkçe versiyon

Detailed view of Expert Config Page

[EN]

Merhaba,

This post is a detailed view of the my first GSOC process. I don’t post entries to the blogs often, so the ones I post are generally long posts. One of the reasons of the opening this blog was to provide information for the new contributors(like me). For better transition to being productive. I did a lot of small mistakes which are blocking the development. I thought telling these mistakes or some challenges to the others should be useful. I will publish them later. So anyway get ready to a long post.

Experience

I was hoping to get a boost on development and better understanding the LibreOffice Code when I first applied to the GSOC. I wasn’t have a great experience on coding. Most of the work I did before was some School projects. Biggest one was implementing  a graph algorithms visualizer with Python. So we can say I am not experienced at all.

Because of my lack of experience I wasn’t very productive during the project. Half of my time spent on learning things and the other half spent on implementing the things I learned. I was a learner mostly. It was enough for me to finishing the main goals of the project. I did lots of things first time in my life. I used a profiler first time, which is a cool thing in my friend group. :) Lots of things like that. So my personal goal is accomplished somehow. I get a great boost for understanding the code. :)

That’s enough trash talk I think. Let’s talk about the project. :)

Project Details

First, screenshots(because we love screenshots , aren’t we all?):

expconf1

expconf3

So,

The page is now handles about 25K lines of options. It shows all of them and edits them back. Libreoffice has a about:config utility as expected from the GSOC project. Yes it is working but it is not in enough quality I think. At least not enough for me. I will continue to work especially on this page.

Current situation with technical details.

  • Page is currently a tab page.(SfxTabPage)
  • Takes the options using UNO API with a recursive function. Basically it is a tree traversal algorithm.(it is named preorder depth-first traversal as I remember)
  • Uses  “OptHeaderTabListBox” for showing the options. It is basically a “SvSimpleTable”.
  • Edit button opens a new dialog(value dialog) and checks the given string according to the type of the option. If it is correct stores it in a vector for saving it later.
  • value dialog handles list types as comma separated string.(i.e if list is has “0,1,2”, it will show them to you as “0,1,2,”. Expects new value as same format.)
  • boolean types are toggled with edit button no new dialog opens.
  • If you try to enter a string instead of a integer type(short,long,hyper) you simply cannot. It controls the key inputs for integer types.
  • If you write a number which exceeds the range of the number it is controlled for integers. But if you do this for float,double or in a list type the value will be 0. Need some work on there a little more.
  • Page loads about 6 seconds. It was 20 minutes on first working load. Still not perfect but I can definitely say better :).
  • Page don’t have a filterbar yet. Which is important when you talk about 25K lines of options.
  • Page has visual problems. Values are so long, tab page is not enough for that long. Thinking to move it as a Dialog to advanced page.
  • There is a default button which doesn’t work for now.
  • Value dialog has a custom edit widget. I planned to use a custom multi edit but couldn’t make it work. So for the time being I used a custom edit.

So yes, It works but also need more work for quality. Which I plan to make the page better in following weeks.

Thats it for now.

[TR]

Yazı çok uzun. Daha sonra ayrı bir girdi olarak göndereceğim. İngilizcesinden takip etmeye çalışabilirsiniz şimdilik. :)

Saygılar.

General coding, Important points – Genel kodlama, Önemli Noktalar

[EN]

If you are planning to contribute code to the LibreOffice, there are some points you will have to learn.

  • You have to learn use an terminal based editor. You can use everything but vim or emacs are commonly used. Also you should learn using indexers.
  • You have to learn debugging. This is really important. Broken gdb may cause delays from schedule. Trust me.
  • You should be able to understand and create connections between some concepts.( I wrote a few small programs with gtk before. This helped me a lot to understand what LINK, macros does.)
  • You should be able to read a lot of code and documentation.

These are my observations from first weeks.

Cheers

[TR]

LibreOffice’e kod katkısı yapmayı düşünüyorsanız bazı şeyleri öğrenmeniz gerekecek

  • Terminal tabanlı bir metin editörü kullanmayı öğrenmelisiniz. Her şeyi kullanabilirsiniz ama genelde vim ya da emacs kullanılıyor. Ayrıca indexleyicilerin kullanımını da öğrenmelisiniz.
  • Debugger kullanmayı öğrenmelisiniz. En önemli kısım sanırım bu. Bozuk bir debugger (gdb) yaptığınız plandan sapmanıza sebep olabilir.
  • Bazı konseptleri anlamanız ve aralarında ilişki kurmanız gerekebilir.(Daha önce gtk ile yazdığım küçük programlar koddaki LINK makrolarının ne işe yaradığını anlamamda baya yardımcı oldu.)
  • Ayrıca bolca kod , belge okuyabilmelisiniz.

Geliştirmenin ilk haftalarından edindiğim gözlemler bunlar.

Kolaylıklar.

Community Bonding Period and First Week – Topluluğa Katılma Safhası ve İlk Hafta

[EN]

Hi,

I assume you know what this is blog about and I am directly diving into the subject. :)

After the announcement of the accepted students there is a gap until start of the coding named community bonding period. This is pretty important because you are working full-time with the community and you have to know each other to communicate. I couldn’t hacked around the code after sending proposals because of my final exams. But I am trying really hard to catch up.

So whatever, on this period we meetup with my mentor on IRC, and Hangouts. Talked about what will happen on project and what should I do.(That was probably my first talk completely in English with someone.)

BTW my project is “implementing an about:config utility for LibreOffice”

The result:

  • Reading manuals for gdb,
  • Creating stacks for indexers(ctags),
  • Digging CUI(Common User Interface) module,
  • New feature branch on git (feature/aboutconfig)
  • And an initial glade file

I am implementing it with C++. It will sit on CUI module.

I spend first week mostly to the researching the code. We need an multi-column listbox for this implementation, and I probably use one of the current multi-column listbox as base. I spend some time to understand backend of visual staff (event handlers etc.). If you are a newcomer to the development here is a note “There is a lot of 90′s fashion code on the project. Be prepared.”.

And drink mineral water. Really. I was drinking mineral water when I felt moments of enlightenment :).

This is probably the longest post for this blog. Next posts probably will be shorter.

[TR]

Merhaba,

Bu bloğun ne amaçla yazıldığını bildiğinizi varsayarak direk konuya dalıyorum. :)

GSOC’ta kabul edilen öğrencilerin açıklanmasından kodlamanın başlamasına kadar olan Türkçe’ye “Topluluğa Katılma Safhası” olarak çevirebileceğim bir süreç var. Oldukça önemli bir süreç aslında çünkü tam zamanlı çalışman gereken bir projede çalışacağın insanları tanımak zorundasın. Ben bu sürece final sınavlarım sebebiyle son anda katılabildim, haliyle kodlarla da çok ilgilenemedim. Ancak aradaki farkı kapatmak için şu an oldukça çabalıyorum.

Bu bağlanma sürecinde mentorumla önce IRC üzerinden sonra Google+ Hangouts üzerinden bazı toplantılar düzenledik. Projenin nasıl gelişeceğini, neler yapmam gerektiğini belirledik. Biriyle tamamen İngilizce konuştuğum ilk seferdi sanırım bu.

Unutmadan projem LibreOffice’e Firefox’taki about:config sayfasına benzer bir alan eklemek.

Toplantı sonucunda yaptıklarım:

  • GDB(Debugger) kullanımı hakkında bolca belgelendirme okudum,
  • Indexleyiciler için etiket yığını oluşturdum(ctags),
  • CUI(Hemen hemen her modülde kullanılan özellikler var (toolbar, ayarlar gibi)) modülünü bolca kurcaladım.
  • Git üzerinde yeni bir dal oluşturdum, (feature/aboutconfig)
  • Bir glade dosyası prototipi oluşturdum.

İlk haftayı genel olarak kodda araştırmalar yaparak geçirdim. Projem için birden fazla kolunu olan bir listbox yapısına ihtiyacım vardı. Neyse ki kodda taban olarak alabileceğim benzer yapılar var. Arayüzü koda bağlayan araç setiyle alakalı kodları biraz anlamak için biraz zaman harcadım.(Event handlerlar vs, Küçük bir tavsiye daha önceden kendi küçük projelerinizde görsel arayüzü olan bir şey olsun. İşin arkaplanını iyi anlayın.) Eğer yeni geliştirmeye başlayacaksanız küçük bir not. Kodda birsürü benden yaşlı 90ların modası parça var. Hazırlıklı olun.

Ve maden suyu için. Gerçekten . Maden suyu içerken aydınlanma anları yaşadım. İşler kafamda böyle oturmaya başladı. :)

Bu büyük ihtimalle en uzun yazı olacak. Kalın sağlıcakla. :)