Yazılım Geliştirme

İçindekiler

1. Debian İkilik Paketlerini Oluşturma Nasıl
1.1. Giriş
1.1.1. İnternetteki Kaynaklar

1.2. Başlarken
1.3. Paket Yapısı
1.4. Uygulama
1.4.1. control
1.4.2. dpkg-deb

1.5. İki Misli Kontrol
1.5.1. lintian
1.5.2. Minimum Belgeleme
1.5.3. fakeroot
1.5.4. Daha Fazla Belge

1.6. Özet
1.7. Katkıda Bulunanlar
1.8. Daha Başka
1.9. Bağlantılar

2. Yazılım Üreticileri Ürünlerini NASIL Doğrudan DEB Formatında Dağıtabilirler
2.1. Giriş
2.1.1. Katkıda Bulunanlar
2.1.2. Geri Bildirim

2.2. Takip Edilecek Yol
2.3. Ürününüzü Paketlemek
2.3.1. Kendiniz Paketleyin
2.3.2. Sizin İçin Başkası Paketlesin

2.4. Paketlerinizi Kendiniz Dağıtın
2.4.1. Bir Paket Deposu Oluşturmak

2.5. Paketlerinizi Debian'a Eklemek
2.5.1. Elde Edecekleriniz
2.5.2. DFSG
2.5.3. ITP Belgesi Doldurmak
2.5.4. Sponsor Bulmak ve Yüklemek

A. Özel Durumlar
A.1. Debian Dışındaki Paketler İçin Özel Notlar
A.1.1. Üç Farklı Debian Dağıtımı
A.1.2. Sürüm Bağımlılıkları
A.1.3. Statik Bağlamak
A.1.4. Kararlı Dağıtımda Olmayan Paketlere Bağımlılık

A.2. Diğer İşletim Sistemleri üzerinde Debian Paketi Hazırlamak
A.3. Başka Bir Formattan DEB Formatına Dönüşüm
A.4. RPM ve DEB Paketlerini Hazırlamayı Kolaylaştırmak

3. Linux Makina Dili NASIL
3.1. Giriş
3.1.1. Belgenin son sürümü
3.1.2. Önsöz
3.1.3. Katkıda Bulunanlar
3.1.4. Tercümeler

3.2. Sembolik makina diline ihtiyacınız var mı?
3.2.1. Artılar ve Eksiler
3.2.1.1. Sembolik makina dilinin (Assembly) avantajları
3.2.1.2. Sembolik makina dilinin (Assembly) dezavantajları
3.2.1.3. Değerlendirme

3.2.2. Sembolik makina dili nasıl kullanılmaz
3.2.2.1. Başarılı kodu gerçeklemek için adımlar
3.2.2.2. Eniyileme yapan derleyiciler ile dilleri
3.2.2.3. Kodunuzu hızlandıracak için genel adımlar
3.2.2.4. Derleyicinin ürettiği kodu incelemek

3.2.3. Linux ve Assembly

3.3. Çeviriciler (Assemblers)
3.3.1. GCC Satıriçi Sembolik Makina Dili
3.3.1.1. GCC'yi nereden bulabiliriz
3.3.1.2. GCC satır içi sembolik makina dili için belgeler nerede
3.3.1.3. GCC'yi uygun satıriçi sembolik makina kodu üretmesi için çağırmak
3.3.1.4. Makro desteği

3.3.2. GAS
3.3.2.1. Nereden Bulurum
3.3.2.2. Şu AT&T sözdizimi de ne ola ki
3.3.2.3. Intel sözdizimi
3.3.2.4. 16 bitlik kip
3.3.2.5. Makro desteği

3.3.3. NASM
3.3.3.1. NASM'ı nereden bulurum
3.3.3.2. Ne yapar

3.3.4. Diğer Sembolik Makina Çeviricileri
3.3.4.1. AS86
3.3.4.2. YASM
3.3.4.3. FASM
3.3.4.4. OSIMPA (SHASM)
3.3.4.5. AASM
3.3.4.6. TDASM
3.3.4.7. HLA
3.3.4.8. TALC
3.3.4.9. Özgür Pascal (Free Pascal)
3.3.4.10. Win32Forth derleyicisi
3.3.4.11. Terse
3.3.4.12. Özgür olmayan ve/veya 32-bit olmayan x86 çeviricileri

3.4. Düşük seviye programlama
3.4.1. Harici Filtreler
3.4.1.1. CPP
3.4.1.2. M4
3.4.1.3. Kendi filtreleriniz ile makroprogramlama

3.4.2. Metaprogramlama
3.4.2.1. Derleyicilerdeki arka uçlar
3.4.2.2. New-Jersey makina kodu araç seti
3.4.2.3. TUNES

3.5. Çağrı Uzlaşımları
3.5.1. Linux
3.5.1.1. GCC'ye ilintileme
3.5.1.2. ELF ve a.out arasındaki sorunlar
3.5.1.3. Doğrudan Linux sistem çağrıları (syscalls)
3.5.1.4. Linux altında donanımsal G/Ç
3.5.1.5. Linux/i386'daki 16 bitlik sürücülere erişim

3.5.2. DOS ve Windows
3.5.3. Kendi işletim sisteminiz

3.6. Hızlı başlangıç
3.6.1. Giriş
3.6.1.1. İhtiyacınız olan araçlar

3.6.2. Merhaba Dünyalı :-)
3.6.2.1. Yerleşim
3.6.2.2. NASM (hello.asm)
3.6.2.3. GAS (hello.S)

3.6.3. Çaliştırılabilir bir kod üretmek
3.6.3.1. Nesne kodu üretimi
3.6.3.2. Çalıştırılabilir üretmek

3.6.4. MIPS Örneği

3.7. Özkaynaklar
3.7.1. Siteler
3.7.2. Haber grupları
3.7.3. Listeler

3.8. Sıkça Sorulan Sorular
3.9. Ekler
3.9.1. Tarihçe
3.9.2. Teşekkür

4. Debian Paket Bakımcılarının Kılavuzu
4.1. Doğru şekilde başlamak
4.1.1. Geliştirme için gereken araçlar
4.1.2. Diğer bilgiler

4.2. İlk adımlar
4.2.1. Oluşturacağınız paketi seçin
4.2.2. Programı edinin ve deneyin
4.2.3. Paket adı ve sürümü
4.2.4. İlk "debianlaştırma"

4.3. Kaynak paketinde değişiklik
4.3.1. Kütüphaneleri değiştirmek

4.4. debian/ altında gerekli olanlar
4.4.1. control dosyası
4.4.2. copyright dosyası
4.4.3. changelog dosyası
4.4.4. rules dosyası

4.5. debian/ altındaki diğer dosyalar
4.5.1. README.Debian
4.5.2. conffiles.ex
4.5.3. cron.d.ex
4.5.4. dirs
4.5.5. docs
4.5.6. emacsen-*.ex
4.5.7. init.d.ex
4.5.8. manpage.1.ex, manpage.sgml.ex, manpage.xml.ex
4.5.9. menu.ex
4.5.10. watch.ex
4.5.11. ex.package.doc-base
4.5.12. postinst.ex, preinst.ex, postrm.ex, prerm.ex

4.6. Paketin Derlenmesi
4.6.1. Baştan yeniden derlemek
4.6.2. Hızlı yeniden derleme
4.6.3. debuild komutu
4.6.4. dpatch ve quilt sistemleri
4.6.5. Gönderirken orig.tar.gz'nin eklenmesi

4.7. Paketin hatalara karşı denetimi
4.7.1. lintian paketi
4.7.2. mc komutu
4.7.3. debdiff komutu
4.7.4. interdiff komutu
4.7.5. debi komutu
4.7.6. pbuilder paketi

4.8. Paketin Debian'a gönderilmesi
4.8.1. Paketlerin Debian arşivine gönderilmesi
4.8.2. Paketin özel bir arşive gönderilmesi

4.9. Paketin Güncellenmesi
4.9.1. Yeni Debian gözden geçirmesi
4.9.2. Yeni üstdüzey dağıtım (kolay yol)
4.9.3. Yeni üstdüzey dağıtım (gerçekçi)
4.9.4. orig.tar.gz dosyası
4.9.5. cvs-buildpackage komutu ve benzetmeler
4.9.6. Paket yükseltiminin doğrulanması

4.10. Nereden yardım alınabilir
A. Örnekler
A.1. Basit paketleme örneği
A.2. dpatch ve pbuilder ile paketleme örneği

5. Ruby Kullanıcı Kılavuzu
5.1. Ruby Nedir?
5.2. Giriş
5.3. Basit Örnekler
5.4. Dizgeler
5.5. Düzenli İfadeler
5.6. Diziler
5.7. Örneklere Dönüş
5.8. Denetim Yapıları
5.9. Yineleyiciler
5.10. Nesne Yönelimli Düşünme
5.11. Yöntemler
5.12. Sınıflar
5.13. Miras
5.14. Yöntemleri Yeniden Tanımlama
5.15. Erişim Denetimi
5.16. Tekil Yöntemler
5.17. Modüller
5.18. Yordam Nesneleri
5.19. Değişkenler
5.20. Genel Değişkenler
5.21. Örnek Değişkenler
5.22. Yerel Değişkenler
5.23. Sınıf Sabitleri
5.24. Hata İşleme: rescue deyimi
5.25. Hata İşleme: ensure deyimi
5.26. Erişgeçler
5.27. Nesnenin İlklendirilmesi
5.28. Ivır Zıvır
5.29. Kılavuz Hakkında

6. NCURSES ile Yazılım Geliştirme NASIL
6.1. Giriş
6.1.1. NCURSES nedir?
6.1.2. NCURSES ile Ne Yapabiliriz?
6.1.3. Nereden Edinilebilir?
6.1.4. Belgenin Amacı/Kapsamı
6.1.5. Programlar Hakkında
6.1.6. Belgenin Diğer Biçimleri
6.1.6.1. tldp.org sayfasındaki kolayca erişilebilir dosya biçimleri:
6.1.6.2. Kaynaktan Kurmak

6.1.7. Katkıda Bulunanlar
6.1.8. İstek Listesi

6.2. Merhaba Dünya !!!
6.2.1. NCURSES Kütüphaneleriyle Derleme
6.2.2. İnceleme
6.2.2.1. initscr() hakkında
6.2.2.2. Gizemli refresh()
6.2.2.3. endwin() hakkında

6.3. Kanlı Ayrıntılar
6.4. İlklendirme
6.4.1. raw() ve cbreak()
6.4.2. echo() ve noecho()
6.4.3. keypad()
6.4.4. halfdelay()
6.4.5. Muhtelif İlklendirme İşlevleri
6.4.6. Bir Örnek

6.5. Pencereler Hakkında Bir Çift Söz
6.6. Çıktı işlevleri
6.6.1. addch() sınıfı işlevler
6.6.2. mvaddch(), waddch() ve mvwaddch()
6.6.3. printw() sınıfı işlevler
6.6.3.1. printw() ve mvprintw()
6.6.3.2. wprintw() ve mvwprintw()
6.6.3.3. vwprintw()
6.6.3.4. Basit bir printw örneği

6.6.4. addstr() sınıfı işlevler
6.6.5. Dikkat edilmesi gereken nokta

6.7. Girdi işlevleri
6.7.1. getch() sınıfı işlevler
6.7.2. scanw() sınıfı işlevler
6.7.2.1. scanw() ve mvscanw()
6.7.2.2. wscanw() ve mvwscanw()
6.7.2.3. vwscanw()

6.7.3. getstr() sınıfı işlevler
6.7.4. Bazı örnekler

6.8. Öznitelikler
6.8.1. Özniteliklerle ilgili ayrıntılar
6.8.2. attron()'a karşı attrset()
6.8.3. attr_get()
6.8.4. attr_ işlevleri
6.8.5. wattr işlevleri
6.8.6. chgat() işlevleri

6.9. Pencereler
6.9.1. Temel bilgiler
6.9.2. Bana bir Pencere göster !!!
6.9.3. Örneğin açıklaması
6.9.4. Örnekteki diğer kısımlar
6.9.5. Diğer Çerçeve işlevleri

6.10. Renkler
6.10.1. Temel bilgiler
6.10.2. Renk Tanımlamalarını Değiştirmek
6.10.3. Renk İçeriği

6.11. Klavye ile etkileşim
6.11.1. Temel bilgiler
6.11.2. Basit bir tuş kullanım örneği

6.12. Fare ile Etkileşim
6.12.1. Temel bilgiler
6.12.2. Olayları yakalamak
6.12.3. Hepsini Bir Araya Getirelim
6.12.4. Çeşitli İşlevler

6.13. Ekran Düzenleme
6.13.1. getyx() işlevleri
6.13.2. Ekran dökümünün alınması
6.13.3. Pencere dökümünün alınması

6.14. Çeşitli Özellikler
6.14.1. curs_set()
6.14.2. Curses Kipini Geçici Olarak Terk Etmek
6.14.3. ACS_ değişkenleri

6.15. Diğer Kütüphaneler
6.16. Panel Kütüphanesi
6.16.1. Temel Bilgiler
6.16.2. Panel Kütüphanesi ile derleme
6.16.3. Panel Penceresinde Gezinmek
6.16.4. Kullanıcı İşaretçilerini Kullanmak
6.16.5. Panelleri Hareket Ettirmek ve Boyutlandırmak
6.16.6. Panelleri Gizlemek ve Göstermek
6.16.7. panel_above() ve panel_below()

6.17. Menü Kütüphanesi
6.17.1. Temel Bilgiler
6.17.2. Menü Kütüphanesi ile derleme
6.17.3. menu_driver: Menü sisteminin dolap beygiri
6.17.4. Menü Pencereleri
6.17.5. Kaydırılabilen Menüler
6.17.6. Çok Sütunlu Menüler
6.17.7. Çok Değerli Menüler
6.17.8. Menü Seçenekleri
6.17.9. Faydalı Kullanıcı Göstericisi

6.18. Form Kütüphanesi
6.18.1. Temel Bilgiler
6.18.2. Form Kütüphanesi ile derleme
6.18.3. Alanlar ile Oynamak
6.18.3.1. Alan Konumunun ve Boyutununun Alınması
6.18.3.2. Alanı taşımak
6.18.3.3. Alan Hizalama
6.18.3.4. Alan Görüntüleme Öznitelikleri
6.18.3.5. Alan Seçenek Bitleri
6.18.3.6. Alan Durumu
6.18.3.7. Alan Kullanıcı Göstericisi
6.18.3.8. Değişken Boydaki Alanlar

6.18.4. Form Pencereleri
6.18.5. Alan Doğrulama
6.18.6. form_driver: Form sisteminin dolap beygiri
6.18.6.1. Sayfada Gezinti İstekleri
6.18.6.2. Alan İçi Gezinti İstekleri
6.18.6.3. Alan İçi Dahili Gezinti İstekleri
6.18.6.4. Kaydırma İstekleri
6.18.6.5. İstekleri Düzenlemek
6.18.6.6. Emir İstekleri
6.18.6.7. Uygulama Komutları

6.19. Araçlar ve Küçük Uygulama Kütüphaneleri
6.19.1. CDK Curses Geliştirme Kiti (Curses Development Kit)
6.19.1.1. Gereç Listesi
6.19.1.2. Bazı Çekici Özellikler
6.19.1.3. Sonuç

6.19.2. dialog hakkında
6.19.3. Perl Curses Modullleri: CURSES::FORM ve CURSES::WIDGETS

6.20. Sadece Eğlence İçin !!!
6.20.1. Hayat Oyunu
6.20.2. Sihirli Kare
6.20.3. Hanoi Kuleleri
6.20.4. Vezir Yerleştirme
6.20.5. Shuffle
6.20.6. Onparmak Eğitmeni

6.21. Kaynakça

7. APT NASIL
7.1. Başlarken
7.2. Temel Yapılandırma
7.2.1. /etc/apt/sources.list dosyası
7.2.2. APT'nin yerel olarak kullanımı
7.2.3. sources.list dosyası için en iyi yansıya karar verme
7.2.4. sources.list dosyasına CD-ROM ekleme

7.3. Paketlerin yönetimi
7.3.1. Paket listesini güncelleme
7.3.2. Paket kurma
7.3.3. Paket kaldırma
7.3.4. Paket güncelleme
7.3.5. Yeni bir sürüme güncelleme
7.3.6. Kullanılmayan paket dosyalarını temizleme
7.3.7. APT ile dselect kullanımı
7.3.8. Karışık bir sistem nasıl kurulur?
7.3.9. Sadece belirli bir Debian versiyonuna sahip paketleri güncelleme
7.3.10. Belirli bir sürüme sahip paketlerin kurulu olarak kalmasını sağlama

7.4. Yardımcı araçlar
7.4.1. Kendi derlediğim paketleri nasıl kuracağım?
7.4.2. Kullanılmayan yerelleştirme dosyalarını kaldırma
7.4.3. Güncellenebilir paketleri nasıl öğrenebilirim?

7.5. Paketler hakkında bilgi toplama
7.5.1. Paket isimlerini keşfetme
7.5.2. Paket adlarını bulmak için dpkg kullanma
7.5.3. Programları anında kurma
7.5.4. Bir dosyanın hangi pakete ait olduğunu bulma
7.5.5. Paketlerdeki değişikliklerden haberdar olma

7.6. Kaynak paketlerle çalışma
7.6.1. Kaynak paketleri indirme
7.6.2. Kaynak paketleri derlemek için gerekli paketler

7.7. Hatalarla başa çıkma
7.7.1. Genel hatalar
7.7.2. Nereden yardım bulabilirim?

7.8. Hangi Linux dağıtımları APT destekliyor?
7.9. Teşekkürler
7.10. Bu belgenin yeni sürümleri
7.11. Yasal Açıklamalar
7.11.1. Telif Hakkı ve Lisans
7.11.2. Feragatname

8. C++ dlopen mini NASIL
8.1. Giriş
8.1.1. Teşekkürler/Katkıda Bulunanlar
8.1.2. Geri Bildirim
8.1.3. Belgede Kullanılan Terimler

8.2. Sorun
8.2.1. İsim Cendereleme
8.2.2. Sınıflar

8.3. Çözüm
8.3.1. extern "C"
8.3.2. İşlevlerin Yüklenmesi
8.3.3. Sınıfların Yüklenmesi

8.4. Kaynak Kod
8.5. Sıkça Sorulan Sorular
8.6. Ayrıca bakınız

9. Python Performans İpuçları
9.1. Diğer sürümler
9.2. Gerekli olanı eniyileştirin
9.3. Sıralama
9.4. Karakter Dizisi Bitiştirme
9.5. Döngüler
9.6. Noktalardan kaçınma...
9.7. Yerel Değişkenler
9.8. Sözlük Elemanlarını İlklendirme
9.9. import İfadesini Ek Yükü
9.10. Veri Bütünlüğü
9.11. İşleri Daha Az Sıklıkla Yapmak
9.12. Python C değildir
9.13. range Yerine xrange Kullanın
9.14. Çalışma Zamanında remap Fonksiyonu
9.15. Kodun Profilini Çıkarmak
9.15.1. Modülün Profilini Çıkarmak
9.15.2. Hotspot Modülü
9.15.3. Trace Modülü

10. Bir Özgür Yazılım Projesine Yama ile NASIL Katkıda Bulunursunuz
10.1. Giriş
10.2. Nasıl Yaparsınız
10.3. Bağlantılar