GSoC 2017 Raporum: LibreOffice Özelleştirme İletişim Penceresinin Yenilenmesi

Bu yıl (2017) Google Summer of Code'a, LibreOffice üzerinde “Revamp the Customize Dialog” projesiyle kabul edildim ve yaz boyu LibreOffice'in özelleştirme penceresini daha kullanıcı dostu hale getirmek, modernleştirmek ve hatalarını gidermek için çalıştım. [Devamını Oku]

Ruby Gem Kurulumunda SSL Hatası

Yeni öğrenmeye başladığım Ruby programlama dili ile basit bir UDP sunucu/istemci çifti yazmaya çalışıyorum.

RubyGems

İstemciden sunucuya büyük bir dosyayı ardışık düzende paketler halinde (pipelining) göndereceğim. Paketlerde bozulma olup olmadığını anlayabilmek için ayrıca ilgili paketin sağlamasını da (MD5) göndermem gerekiyor. Bunu Ruby’nin ‘bindata’ paketini (gem) kullanarak yapmayı düşünüyorum (pack/unpack ile uğraşmaktan daha basit görünüyor).

[Devamını Oku]

Qt5 Araç Takımına Giriş

Qt, birden çok platformu destekleyen bir grafiksel kullanıcı arayüzü geliştirme araç takımıdır. Genellikle GUI programları geliştirmek için kullanılsa da gelişmiş kütüphanesi GUI bileşenlerinin dışında birçok araç içermektedir. Qt, en çok KDE masaüstü ortamında, Opera ağ tarayıcısında ve Skype anlık mesajlaşma programlarında kullanılmasıyla bilinir.

Qt5 Logo

Qt5 hakkında başlangıç düzeyinde bilgi vermeye (ve öğrenmeye) çalışacağım ders dizisinin ilki olan bu derste Qt5 kitaplığına giriş yapmaya çalışacağım. Bu kısımda Qt5 kitaplığını Debian üzerinde kurup ilk küçük Qt5 uygulamamızı oluşturacağız.

İlk olarak Norveçli bir yazılım firması olan Trolltech tarafından geliştirilen Qt, daha sonra önce Nokia ve ardından da Finlandiyalı Digia şirketi tarafından satın alındı. Halen hem Digia hem de açık kaynaklı Qt Projesi tarafından geliştirilmeye devam ediyor. Açık kaynaklı Qt araç takımının web sitesine qt.io adresinden ulaşabilirsiniz.

[Devamını Oku]

C++'a Hızlı Giriş – 02 – İsim Uzayları (Namespaces)

C++'ta isim uzayları, Java'daki paketler gibi, farklı kod parçaları arasındaki benzer adların çakışma sorununu çözmeye yardımcı olur. Örneğin, programınızda kullanmak üzere faktoriyel() isimli bir fonksiyon yazmış olalım. Diyelim ki bir süre sonra, bu işi bizim yazdığımız koddan daha etkili şekilde yapan harici bir kütüphane kullanmaya karar verdik ve bu yeni kütüphanedeki fonksiyonun adı da faktoriyel(). Bu durumda, faktoriyel(3) şeklinde bir çağrı yaptığımızda, derleyicinin bizim fonksiyonumuzu mu yoksa harici kütüphanedeki fonksiyonu mu çağıracağını bilme imkanı olmayacaktır.

[Devamını Oku]