Programcılar için KDE



Benzer belgeler
KDE Masaüstü Ortamı. S.Çağlar Onur & Barış Metin. caglar@uludag.org.tr baris@uludag.org.tr. Akademik Bilişim 2005 Gaziantep

Pardus. A. Murat Eren, 25 Mart Pardus Geliştiricisi. Pardus Yenilikleri Sık Sorulan Sorular

Demodülasyon Algoritmaları İçin En İyilenmiş Windows İşletim Sistemi Uygulamaları

Pardus. S.Çağlar Onur, 21 Aralık Pardus Projesi [TÜBİTAK / UEKAE] Linux Kullanıcıları Derneği

Nasıl Pardus Geliştiricisi Olunur?

Pardus Projesi ve Topluluk süreçleri. Ali Işıngör Akın Ömeroğlu

Özgür Yazılımlarla Web Programlama. Özlem Özgöbek

I. Oturum: GNU/LINUX A GİRİŞ

WORDPAD. Hızlı erişim araç çubuğu ve dosya menüsü. Kayıt, yazdırma ve sayfa yapısına yönelik işlemlerin

Python GELECEK. Barış Metin Linux Sistemleri. Python Programlama Dili

Ekle Menüsü İşlevleri ÜNİTE 3. Bu üniteyi çalıştıktan sonra; Ekle Menüsü Çizimler Grafikler Bağlantılar Metin

Linux Grafiksel Arayüz Kütüphaneleri

PHP'ye Giriş Türkiye PHP Grubu - Linux Şenlikleri PHP Eğitim / Tanıtım Seminerleri Ankara, 11 Mayıs 2006 Hidayet Doğan <hdogan@hido.

Glade. hitokiri. Eylül, 2012

AÇIK KAYNAK KODLU İŞLETİM SİSTEMLERİ DERS NOTLARI 1-İşletim Sisteminin görevi nedir? En çok kullanılan işletim sistemleri nelerdir?

NESNEYE DAYALI PROGRAMLAMA VE C++

Qt Temelleri. Eren BAŞTÜRK.

08217 Internet Programcılığı I Internet Programming I

Özgür Yazılım Lisansları

Firefox - Firebug Eklentisi İndirilmesi,kurulması Ve Kullanımı. Firebug

Öğr. Gör. Serkan AKSU 1

PyQt ile İş Uygulaması Geliştirimi

Hitit R5 Ayarları. Hitit R5 Programının kurulu olduğu veritabanı ve web servisi için bağlantı ayarlarının yapıldığı menüdür.

A. Murat Eren. VI. Linux ve Özgür Yazılım Şenliği

İNTERNET TABANLI TEST HAZIRLAMA VE DEĞERLENDİRME PROGRAMLAMA ARAYÜZÜ

İNTERNET PROGRAMCILIĞI - II

DERS BİLGİ FORMU. Haftalık Ders Saati. Okul Eğitimi Süresi

Metin Editörleri YRD. DOÇ. DR. ENGİN CEMAL MENGÜÇ. ALINTI:

Sanal Ortamda Nesnelerin Haptic Kol ile Manipülasyonu. Sevcan AYTEKİN Alpaslan DUYSAK

Linux un Temel Bileşenleri. Linux Nedir? Aydın ÜSTÜN (Selçuk Üniversitesi) e-posta:

Yrd. Doç. Dr. Caner ÖZCAN

Özgür Yazılım ve Pardus. Erkan Tekman TÜBİTAK UEKAE 7 Aralık 2006

MİKRO PROGRAMININ GÜNCELLENMESİ

Açık Kaynak Kodlu Yazılım

SSH ile Sistem Yönetimi

ÖZEL GÜVEN TIP MERKEZİ

5. PROGRAMLA DİLLERİ. 5.1 Giriş

API geliştiricileri. Web server ile yapılan entegrasyonun neticeleri. API Dokumantasyonu

1.PROGRAMLAMAYA GİRİŞ

İletişim en genel tanımı ile; bir mesaj alışverişidir. Ancak iletişim yapı gereği bir sistemdir. İletişim sisteminin bileşenleri:

Linux e Giriş ve Dağıtımlar

11. TASARIM ŞABLONU KULLANARAK SUNU HAZIRLAMAK

Üst Düzey Programlama

KİTaS, ortaokul öğrencileri için MEB tarafından tavsiye edilen 100 temel eserin öğrenci okumalarının

1.1 Metodolojiyi Gerçeklemek Üzere Geliştirilen Altyapı

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

Ulusal Dağıtım Projesi ve Pardus

YAZILIM ÜRÜN HATTI DEĞĐŞKENLĐĞĐNĐN DENETĐM ÇEVRĐMĐ ĐLE ELE ALINMASI

Gparted İle Windows tan Linux a Yer Ayırıyoruz

Sunu: Belli bir konunun resim, grafik, metin, ses ve görüntüler kullanılarak giriş, gelişme, sonuç bölümleriyle sıralı ve düzenli bir şekilde

BİLGİSAYAR MİMARİSİ. Mimariye Giriş. Özer Çelik Matematik-Bilgisayar Bölümü

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10. Yrd.Doç.Dr.Hacer Karacan

Qt ile Bir Ağ Uygulaması

Android e Giriş. Öğr.Gör. Utku SOBUTAY

Tasarım Raporu. Grup İsmi. Kısa Özet. Tasarım Hakkında Ne Biliyorsunuz? Tasarım Amacı Nedir?


1.Debian. 2.Ubuntu. Şekil 1. Güncel logosu

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

emuseum KOLEKSİYONUNUZU WEBDE PAYLAŞIN Neden emuseum? SAYISAL GRAFİK TM TMS ile tümleşik çalışma Programlanabilme

Sevdiğiniz editörü açın, Notepad, vi, pico vb. Daha sonra da aşağıdaki kodu yazın:

UniFi Access Point Kurulum

Bölüm 2 İşletim Sistemi Yapıları

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

ELEKTRİK-ELEKTRONİK TEKNOLOJİSİ PLC VE OPERATÖR PANELİ PROGRAMLAMA GELİŞTİRME VE UYUM EĞİTİMİ MODÜLER PROGRAMI (YETERLİĞE DAYALI)

My EBSCOhost Kullanım Kılavuzu. support.ebsco.com

PiSi ile Paket Yapımı. S.Çağlar Onur

Sayfa Düzeni İşlevleri ÜNİTE 4. Bu üniteyi çalıştıktan sonra;

10)Bir pencerede bulunan sıralı olmayan simgeleri seçebilmek için hangi yardımcı tuş kullanılır? a-)alt b-)ctrl c-)shift d-)caps Lock e-)enter

Analiz Raporu. Analiz aşamasında projenin içeriği belirlenir. Çözeceğimiz problemin büyük bir problem olup olmadığını değerlendirmek,

Örnek bir kullanım ve bilgisayar ağlarını oluşturan bileşenlerin özeti

19 Şubat 2016 Cuma

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri

Linux ve Özgür Yazılım Nedir?

1. KAMU DENETÇİLİĞİ KURUMU ELEKTRONİK BELGE VE ARŞİV YÖNETİM SİSTEMİNE ERİŞİM

İÇİNDEKİLER. YAZARLAR HAKKINDA... v. RESİMLER LİSTESİ...xv. 1.1.Bulut Bilişim Kavramının Analizi...1 BÖLÜM 1: TEMELLER...1

Kaspersky Administration Kit 8.0

Google Web Toolkit ile Öğretim Elemanı Otomasyon Sistemi

Javascript Geliştiricileri İçin Xaml Ve Microsoft Silverlight

Özgür Yazılım Proje Yönetimi

Python Web 2.0 Python ve Web 2.0 Son. Python ve Web 2.0. Gökmen GÖKSEL, 3 Mayıs 2007

İNTERNET PROGRAMLAMA II. Tanımlar

PAKET TRANSFER SİSTEMİ

Compiere Açık kodlu ERP + CRM yazılımı. Hüseyin Ergün Önsel Armağan Serkan Demir

C++ Grafik Kullanıcı Arabirimlerinde Taşınabilirlik

NESNEYE DAYALI VERİTABANLARI

Teknikleri. Önsöz. iskender atasoy

YZM 3215 İleri Web Programlama

LKD Kendi İlacını Kullanıyor

ÖZGÜR YAZILIMLAR İLE J2EE

İnternet Programcılığı

AÇIK KAYNAK İŞLETİM SİSTEMİ DERSİ

Özgür Yazılım, İş ve Kariyer Modelleri. Mahir B. Aşut EkoPC Kurucu Ortağı ve Yöneticisi, LKD Üyesi

GörüntüĐşlemede Yeni Bir Soluk, OpenCV

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS

FireBug eklentisini eklentiyi yazan sitesinden veya FireFox un eklentiler indirebilirsiniz.

BİLİŞİM TEKNOLOJİLERİ WEB PROGRAMCISI MODÜLER PROGRAMI (YETERLİĞE DAYALI)

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş

ANDROID UYGULAMA YARDIM DOKÜMANI

Samsun Çocuk Hizmetleri İ l Koordinasyon Sekretarya Birimi

Transkript:

Programcılar için KDE Barış Metin baris@uludag.org.tr Programcılar için KDE, programlama araçları ve teknolojilerine giriş Linux Kullanıcıları Derneği

İçerik Programcı gözü ile KDE KDE programlama araçları KDE teknolojileri

İki Yüzlü KDE KDE genellikle bir masaüstü ortamı olarak adlandırılır. Geliştiriciler için; KDE == Uygulama Geliştirme Ortamı

Masaüstü Ortamı Pencere Yöneticisi kwin Masaüstü Yöneticisi kdesktop Panel kicker Dosya yöneticisi konqueror Yapılandırma araçları kcontrol Yardım alma sistemi khelpcenter Oturum yönetimi ksmserver Diğer yardımcı bileşenler Ve, uygulama programları Tümü bir bütün olarak çalışmalı!

KDE Çoook Büyük Source Lines of Code (SLOC) - 2003 KDE 3.1 = 2,632,369 KDE CVS = 4,215,861 http://mindx.josefspillner.de/kde/stats/

Geliştirici Gözü ile KDE Nene-yönelimli (O-O) tasarım Bileşen tabanlı Yoğun olarak paylaşımlı kütüphaneler kullanılıyor. Çok parçacıklı bir yapı

Getirileri? Nene-yönelimli (O-O) tasarım Arayüz programlama için uygun (iç içe nesneleri yoğun olarak kullanıyorsunuz). Kod paylaşımı ve organizasyonu kolay. Modüller arası arayüzleri (interface) basit ve temiz bir şekilde tanımlayabiliyorsunuz.

Getirileri? - 2 Bileşen tabanlı Paylaşımlı kütüphaneler Kodun tekrar kullanımı artıyor. Standart kullanıcı arayüzleri oluşturuluyor. Hata oranı düşüyor. Çok parçacıklı Çok sayıda programcı bir arada çalışabiliyor. İyi iletişim kanalları ile birleştirildiğinde bütün bir sistem gibi davranabiliyor.

Görünüm

Güvendesiniz! Qt'nin geliştiricisi Trolltech, Qt'den para kazanıyor! Trolltech sponsorluğunda, KDE Free Qt Foundation kuruldu. Qt Free Edition un güncelliğinden sorumlu. Eğer Trolltech, Qt Free Edition sürümünü yayınlamayı durdurursa, Foundation Qt'yi BSD-stili bir lisansla yayınlama hakkına sahip. Qt Free Edition lisansı GPL veya LGPL olmak zorunda.

KDE Felsefesi ŞİMDİ yapılmasını sağla! Yapacağın işe ODAKLAN! Yinelemeli (iteratif) olarak geliştir. Uygun bir, özellik seti ve özelleştirilebilirlik ile başla; zamanla geliştir. (hepsi bir anda olacak diye birşey yok :)

Gerekler KDE programlamaya başlamadan önce; Temel Unix bilgisi ( GNU/Linux tavsiye edilir ;) C++ programlama bilgisi Qt kütüphanesi ile deneyim

Geliştirme Araçları KDevelop KDevelop Designer * KDevelop Assistant * KBugBuster KCacheGrind, valgrind, callgrind Kompare KBabel Cervesia Quanta

KDevelop Designer

Temel KDE Teknolojileri Kullanıcılar KDE teknolojilerini yalnızca uygulamalar aracılığı ile kullanıyorlar. Konqueror: - web gezgini - dosya yöneticisi Konqueror Bunları - ssh ile uzaktaki bağlanıyor Tekmakinaya Başına - CVS arayüzü Yapmıyor! - resim albümleri oluşturabiliyor - ftp istemcisi - Bash betikleri ile yönetilebiliyor

Temel KDE Teknolojileri DCOP KIO SYCOCA KParts KHTML XML-GUI KConfig / KConfig-XT arts

DCOP KDE uygulamaları birbirleri ile konuşuyor ( uygulama <-> uygulama ) Sistem geneli çağrılar (sinyaller) X ile gelen standart libice (ICE Internet Communications Engine) kütüphanesini kullanıyor. C++ ve C içerisinde kullanımı mümkün. Basit bir IDL (interface definition language). DCOP, gerçekten basit! KUniqueApplication kullanan uygulama otomatik olarak DCOP kullanıyor.

DCOP - devam int main() { DCOPClient client; client.registeras( "deneme" ); client.attach(); DCOPRef deneme( "kopete", "KopeteIface" ); DCOPReply reply = deneme.call( "onlinecontacts" ); if (!reply.isvalid() ) fprintf( stderr, "failed\n" ); else { QStringList str; reply.get( str ); for ( QStringList::Iterator it = str.begin(); it!= str.end(); ++it ) printf( "oldu: %s\n", ( *it ).latin1() ); } reply = deneme.call( "messagecontact", QString( "caglar@jabber.uludag.org.tr" ), QString( "dcop iste, kusura bakma :)" ) ); if (!reply.isvalid() ) fprintf( stderr, "failed...\n" ); else { QString str; reply.get( str ); printf( "oldu: %s\n", str.latin1() ); } return 0; }

KIO Asenkron olarak dosya sistemi, protokol ve bileşenlerin bulunmasını ve yüklenmesini sağlıyor. Tüm bileşenler ayrı eklentiler olarak geliyor. Her protokol için bileşenler yazılıyor (kioslaves). Sisteme yeni eklenen bir kioslave bileşenini aynı anda tüm uygulamalar kullanmaya başlayabiliyor.

KIO - 2

KIO - devam Uygulama KIO bileşenini kullanmak için yeniden derlenmek zorunda değil. Uygulama kullanılan protokol ile ilgili hiçbir şey bilmiyor. 1. KIO protokolü anlamak için URL'ye bakıyor. 2. Protokol tipine göre KIO uygun kioslave'i buluyor. 3. KIO bulunan kioslave'i yüklüyor ve kullanıyor.

SYCOCA System Configuration Cache Hangi uygulama.pdf dosyalarını açabiliyor? JPEG resimleri için ön tanımlı simge hangisi? Hangi uygulama.kpr dosyalarını açabiliyor ve başka bir program içerisine gömülebilir? Tüm bu bilgiler.desktop metin dosyalarından alınıyor.

SYCOCA - Neden? Metin dosyalarını kolay düzenleniyor, fakat dosyalara erişmek ve üzerlerinde arama yapmak yavaş. SYCOCA sürekli olarak metin dosyalarından, ikili verileri önbellekliyor. Bu sayede veriler üzerinde arama oldukça hızlı. Her uygulama uygun bileşenini bulmak için SYCOCA kullanıyor.

SYCOCA - devam Büyük ihtimal ile SYCOCA'yı doğrudan değil üst seviye modüller ile kullanacaksınız. KServiceGroup::Ptr group = KServiceGroup::baseGroup( "settings" ); if (!group!group->isvalid() ) { return; } // iterate over group list. KServiceGroup::List list = group->entries( true, true ); KServiceGroup::List::ConstIterator it = list.begin(); for ( ; it!= list.end(); ++it ) { KSycocaEntry *p = ( *it );...

KParts KDE grafik bileşenleri, KPart bileşenleri halinde oluşturuluyor. KPart bileşenleri diğer uygulamalar içerisine gömülebiliyor. KPart bileşenleri de paylaşımlı kütüphaneler olarak oluşturuluyor. KOffice, Kontact, Konqueror, KDevelop; bu sayede çalışıyor.

KHTML KDE için geliştirilen HTML kütüphanesi. En iyi tasarlanmış, özgür, HTML kütüphenesi olduğu söyleniyor. DOM tabanlı HTML 4.0 kütüphanesi, Java, JavaScript, CSS-1, CSS-2, XML/DOM, SSL, Netscape/Mozilla eklentileri... Dosya indirmek için KIO kullanıyor. Bir parçacık (widget) olarak yada KPart bileşeni olarak kullanılabilir.

XML-GUI KDE programları için, menü ve araç çubuğu bileşenlerini otomatik/dinamik oluşturuyor. Menü bilgileri XML tanım dosyasından alınıyor. XML-GUI kullanan her uygulama tanım dosyasını oluşturuyor (.rc dosyaları) ve bu dosyaları sisteme yerleştiriyor. Tanım dosyalarındaki yerleşimi kod içerisinden değiştirmek mümkün. Kullanıcının değiştirmesine izin veriyor. Daha az kod yazıyorsunuz.

Kconfig / KConfig-XT Kconfig; Metin dosyaları üzerinde, KDE yapılandırma altyapısı. (.ini türü dosyalar). Kolay anlaşılır, kolay erişilir. Kconfig-XT; Yapılandırma ihtiyaçları için otomatik kod oluşturma. XML tarif dosyası (.kcfg) Kod oluşturma seçeneklerini belirten,.ini benzeri tanım dosyası (.kcfgc) kconfig_compiler, C++ kaynak kodları oluşturuyor. QT/KDevelop Designer ile birlikte çalışabiliyor.

arts Analog Realtime Synthesizer, KDE çokluortam sistemi Birden fazla sesi aynı anda çalabiliyorsunuz. Ağ üzerinden ses çalabiliyorsunuz. Pek çok ses biçemini (mp3, wav) çalabiliyor. Geriye uyumlu olmayacak KDE 4 sürümünde arts'ın değiştirilmesi düşünülüyor.

Bağlantılar http://developers.kde.org http://www.kde.org http://www.kde-apps.org http://www.trolltech.com

Programcılar için KDE Barış Metin baris@uludag.org.tr Programcılar için KDE, programlama araçları ve teknolojilerine giriş Linux Kullanıcıları Derneği