Internship at Pardus

Hi, I’ve started working on Pardus linux distribution as an intern last week. This post is the summary of the first week at the office…

I’ve been supporting Pardus for almost 6 years and being volunteer at the events occasionally. I’ve met most of the developers during these events. However, I had a great opportunity to met the ones who I haven’t met before and the other interns at the meeting in first day.

Other four days of the week, Pardus developers organized some workshops which are useful for interns in these subjects: Python, vi, ÇOMAR, PiSi, Qt, Linux kernel, testing and debugging… We had enough time to practice too.

I have an active developer application request, and I have plans for Package Manager. Since I’m in the same office with its developer, we had chance to brainstorm. Gökmen has also requested me to make some improvements in package details window. That window contains a web page and making improvements is a piece of cake!

While other interns practice what we’ve learned from workshops, I worked on improvements for the details web page. For development, I preferred nginx web server which I use a lot recently. However, I had to make some changes in php package to be able to use it with nginx. I needed to enable FastCGI support, and I had to update libc-client package to do that. After these changes, I’ve managed to build a new php package with php-fpm patch! 😀

Recently, I changed static rating stars with jQuery and Raty plug-in. I’ve also created a new php class to help me with working SQLite database that holds the rating data. It’s almost finished, I just need to implement a log in system for package ratings.

This week on Monday, it became official that my internship project is “improvements on package manager”. Sexy screenshots are coming soon!

Pardus’ta Staj Başlıyor

Bilmeyeniniz için söyleyeyim, TÜBİTAK‘ın desteğiyle geliştirilen Pardus projesinde yaz stajı için kabul edildim. Hatta staja başlayalı bir hafta oluyor. Nasıl geçti, neler yaptık, kısaca özetlemeye çalışayım…

Pardus projesini neredeyse 6 yıldır destekliyorum ve sık sık etkinliklerde de gönüllü oluyorum. Bu etkinlikler boyunca da, geliştiricilerin çoğuyla tanışma fırsatım da oldu. Tanışmakla geçen stajın ilk günü, benim için herkese selam vermekle geçti. Ancak öğleden sonra yaptığımız tanışma toplantısı, tanımadığım geliştiricilerle tanışmak ve diğer stajyer arkadaşlar hakkında bilgi edinmek açısından faydalı oldu.

Haftanın diğer 4 gününde, geliştiriciler tarafından, stajyerlere projelerinde faydalı olabilecek eğitimler verildi. Konu başlıkları şu şekildeydi: Python, vi, ÇOMAR, PiSi, Qt, Linux çekirdeği, hata çözme ve test süreçleri. Eğitimden kalan zamanlarda ise, öğretilenleri pratik yapmamız için kurcalama fırsatımız oldu.

Geliştiricilik başvurumun son aşamasında Paket Yöneticisi’nde yapmayı istediğim değişiklikler vardı. Geliştiricisiyle aynı ofis içerisinde olunca daha rahat fikir alışverişi yapabildik. Böylece planladığım değişiklikleri son haliyle kafamda güzelce şekillendirebildim. Bu konuşmalar sırasında, Gökmen, paket detaylarını gösteren pencere içerisinde de iyileştirmelere ihtiyaç olduğunu söyledi. Pencere içerisinde bir web sayfası gösterildiği için benim için çocuk oyuncağıydı.

Stajın ilk haftası boyunca eğitimlerden kalan zamanlarımı bu konuda çalışarak değerlendirdim. Amaç paket derecelendirme sistemini çalışır hale getirmekti. Çalışırken, son zamanlarda oldukça fazla vakit geçirdiğim ve giderek daha çok sevmeye başladığım nginx web sunucusunu kullanmak istedim. Ancak, Pardus Kurumsal 2’de, php ile kullanabilmek için bazı taklalar attırmak gerekiydu. Öncelikle php’nin, FastCGI desteğiyle derlenmesi gerekiyordu. Bunun için de libc-client paketini de güncellemek gerekti. Değişiklikleri yaptıktan sonra php’yi, php-fpm yamasını da uygulayarak derleyebildim. Birkaç yapılandırma dosyası düzenledikten sonra nginx ile php kullanabiliyordum. 😀

Sonraki günlerde jQuery ve Raty isimli eklentiyi kullanarak, derecelendirme sistemini çalışır hale getirdim. Derecelendirme bilgilerinin tutulduğu SQLite veritabanında işlem yapmayı kolaylaştırmak için küçük bir php sınıfı da tanımladım. Çözülmesi gereken hatalar dışında bitirdim denebilir 🙂

Şu anda, 2. haftanın başlangıcında, geliştiricilerin toplantıdan çıkmasını bekliyoruz. Çıktıklarında proje seçimi yapacağız, heyecan dorukta!