Qt etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Qt etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

18 Şubat 2011 Cuma

Dino (Dnsomatic.com ip güncelleme istemcisi)

Evinizdeki internet bağlantısında OpenDNS servisinin filtreleme hizmetini kullanmak istiyorsanız veya sunucunuzdaki ftp, http, vnc gibi servislere ücretsiz bir alan adı üzerinden erişmek istediğinizde ip adresinizi bu servislere kayıt etmeniz gerekiyor. Ip adresiniz sabit değilse bu işi düzenli ve otomatik olarak yapacak bir araca ihtiyaç oluyor.

Aslında bu iş oldukça basit ve ddclient gibi başarılı araçlar zaten var ancak bunların bir arayüzü yok. Bu açıdan Dino'nun kullanımı oldukça kolay.

Bir başka OpenDNS hizmeti olan Dnsomatic.com servisi ise ip güncellemeye ihtiyaç duyan popüler pek çok servisteki hesaplarımıza tek tek güncelleme yapmaktan bizi kurtarıyor. Tüm bu servisleri önce dnsomatic.com hesabınıza kaydediyorsunuz, sonra dnsomatic'e tek bir güncelleme isteği gönderiyorsunuz, o sizin için kayıtlı tüm servislerinizi güncelliyor.




https://github.com/alierkanimrek/dino

http://www.ozgurlukicin.com/forum/gonullu-calismalar/20861/?page=1

30 Kasım 2009 Pazartesi

Pardus için OpenDNS istemcisi

Pek çoğumuz OpenDNS'i bazı sansürlü siteleri açmak için kullanılan basit bir DNS servisi olarak biliyor, gerçekte ise üyelerine dns sunucusu üzerinden ücretsiz içerik filtreleme hizmeti veren bir servis. Eğer Pardus'ta internet içerik filtreleme kullanmak istiyorsanız bugün için en basit çözüm OpenDNS servisini kullanmak. (Tabii bu sözüm squid+dansguardian gibi paketleri yönetebilecek seviyedeki kullanıcılar için geçerli değil.)

Pardus'ta OpenDNS servisini filtreleme amaçlı kullanabilmek için OpenDNS'in ağınızın WAN ip adresini bilmesi gerekiyor. Bu iş aslında çok basit, kuracağınız küçük bir betik bu adresi belirli aralıklarla OpenDNS'e bildiriyor, bunun nasıl yapıldığını anlatan bir yazı zaten uzun zamandır özgürlükiçin'de var.

Ancak gördükleri $ işareti her şeyi GUI aracılığı ile yapmaya alışkın kullanıcıları koşarak uzaklaştırmaya yetiyor. Bende bir süredir bu küçük işlemleri nasıl bir GUI'ye yerleştiririm diye düşünüyordum. Bayram tatili fırsat oldu.

Konuyu araştırırken OpenDNS'in aslında çok basit bir API kullandığını ve bir https çağrısı ile adresin güncellenebildiğini öğrendim. Bununla ilgili python örneklerini de bulunca kendi güncelleme istemcimi yazarım dedim ve işe koyuldum.

Pog adını verdiğim (belki adını değiştiririm, böyle garip isimleri nereden buluyorsun demeyin kısaltma işte) küçük program tamamlandığında çok sevdiğimiz GUI aracılığı ile girdiğiniz OpenDNS kullanıcı adı ve şifresi ile cron zamanlayıcısını kullanarak belirli aralıklarla güncellemeyi yapacak. Çalışır hale geldiğinde http://github.com/alierkanimrek/ adresindeki deposundan indirilebilecek. GUI Meraklıları için bir de ekran görüntüsü;


16 Kasım 2009 Pazartesi

Paso 0.1

Kendinize özel Pardus kurulum ortamı hazırlayabileceğiniz Paso'nun 0.1 sürümü hazır. http://github.com/alierkanimrek/paso/downloads Adresinden indirebilirsiniz, arşivi açıp src dizininde "python paso.py" komutunu çalıştırmanız yeterli. Nasıl kullanacağınıza dair kısa açıklamalar http://wiki.github.com/alierkanimrek/paso adresinde var. Tabii eksikler çok http://github.com/alierkanimrek/paso/issues adresinden bilinen hatalara bakabilirsiniz.

Xfce önkurulumlu Pardus için bir .paso hazırladım http://groups.google.com.tr/group/antalya_linux/files adresinden indirebilirsiniz.

12 Kasım 2009 Perşembe

Paso 0.1 XML desteği ile geliyor

Paso'nun TODO dosyasında alt sıralarda olan (.pisi dosyalarını örnek aldığım) XML biçimli dosya desteğinin diğer ihtiyaçlar için bir zorunluluk olduğunu fark edince ilk sıraya onu aldım ve şu anda hazır, ama henüz testlerini tam yapamadığımdan commit etmedim. Bu, şu ana kadar hazırlanan paso dosyalarının güncel paso ile okunamayacağı anlamına geliyor, belki bir çevirme betiği yazabilirim, o konuda söz vermeyeyim. Ayrıca Paso dosyasına hazırlayan kişinin isim ve e-posta bilgilerini ekleme ve hazırlanan paso ile ilgili açıklamalar ile yapılan çalışmanın varsa internet adresini ekleme gibi güzellikler de hazır.

Şu anda git deposundaki Paso Testing'i kullananlar hazırladıkları paso dosyalarını yakında commit edeceğim Paso 0.1 ile kullanamayacak! Yani hazırladığınız Paso dosyalarını yayınlamadan önce biraz daha bekleyin ve 0.1 ile tekrar hazırlayıp öyle yayınlayın derim.

http://armuting.blogspot.com/2009/11/paso-ile-guncel-pardus-kurulumu-yapn.html
http://armuting.blogspot.com/2009/10/pasoyu-yaynladm-pardus-seckilerine-yer.html

24 Ekim 2009 Cumartesi

Paso'yu yayınladım, Pardus seçkilerine yer açın!

Pardus seçkileri oluşturmak için yazmaya başladığım Paso'yu sonunda yayınladım, http://github.com/alierkanimrek/paso adresinden indirip hemen kullanılabilir, Qt4 arayüzlü bir Python betiği sonuçta.

Pisi paketi ve çevirisi için henüz erken olduğunu düşünüyorum, temel işlevleri yerine getirse de henüz pek çok eksiği ve eminim bilmediğim pek çok hatası var. Nasıl kullanıldığına dair bir örnek yapıp ekran kaydı aldım, örnekte Gnome'lu Pardus kurulum ortamı hazırladım. (Tam ekran izleyin)





Paso ile istediğiniz paketlerden oluşan size özel bir Pardus kurulum imajı oluşturabilirsiniz. Daha önemlisi bu imajları oluşturmak için kullandığınız .paso dosyasını paylaşarak herkesin kendi sisteminde sizin hazırladığınız imajları oluşturmasını da sağlayabilirsiniz. Ama unutmayın ancak kurulmuş bir Pardus sistemindeki paketlerden oluşan bir kurulum seçkisi hazırlayabilirsiniz.

Paso dosyaları sadece paketlerin hangi depolarda olduğu bilgisini içeren küçük dosyalardır,, paylaşması kolaydır, isterseniz internetteki depolarda olmayan kendi hazırladığınız paketleri de paso dosyası ile paylaşıp oluşturulacak imaja dahil edebilirsiniz. Kurulum bildiğiniz Pardus kurulumu olacak.

Yakaladığınız hataları ve önerileri github'dan iletebilirsiniz, ama yazılım ile hobi olarak ilgilenen bir amatörüm ve bu işlere kısıtlı zaman ayırabiliyorum, geri dönüş için acele etmeyin :) Ayrıca İngilizcem çok iyi olmadığından bu konudaki düzeltme önerilerini de memnuniyetle karşılarım.

17 Ekim 2009 Cumartesi

Paso test sürüşünde

İş güç özel yaşam derken eğlenceye kalan zaman azalıyor, benim eğlencem de kodlarım. Bir süredir çalıştığım Paso artık ayaklandı ve iş çıkarmaya başladı ama daha oturup adam akıllı test edemedim. Çünkü test aşamaları uzun zaman gerektiriyor, sanal makinede Pardus kurulumu (hadi bunu sanal disk kopyalarıyla hallediyorum) değişik paketlerin kurulumu veya kaldırılması, paso ile tekrar imajın oluşturulup sonra bu imajın kurulması falan... Bu sabah Xfce'li Pardus kurulumu yaptım ve birkaç hata düzelttim;


Geçenlerde yaptığım ilk testte çok ilginç bir durumla karşılaştım, Paso ile oluşturduğum iso dosyalarıyla yaptığım kurulumlarda /boot/grub/message dosyası oluşturulmuyor. Bu dosya gfxtheme-pardus-boot paketinin kurulumu sırasında oluşturuluyormuş, paket hatasız bir şekilde kuruluyor ve ayarlanıyor görünüyor ama... Neyse şimdilik bunun üzerinde duracak zamanım yok, Gnome'lu Pardus gibi birkaç denemeden sonra kodları yayınlamak için acele ediyorum.

22 Eylül 2009 Salı

Pardus seçkilerine doğru

Üzerinde çalıştığım proje hayal ettiğim gibi gerçekleşirse isteyen herkes kendi seçtiği paketlerden oluşan özel bir Pardus Kurulum ortamı oluşturabilecek. Hatta bunu küçük (-1MB) dosyalarla paylaşabilecek. Yani içinde oyunlar olan kendi kurulum DVD'nizi hazırlayabileceğiniz gibi örneğin bir başkasının hazırladığı Xfce paketlerinden oluşan seçkisini de indirip kurulum ortamı olarak inşa edebileceksiniz.

Projeye "Paso" adını verdim, bayram tatilinden önce birkaç temel Python sınıfı yazmıştım, tatilde fırsat buldukça da Qt ile arayüz hazırladım, epeydir Qt ile ilgilenmiyordum arayüz giydirmek çok zaman alan bir işmiş. Paso iki bölümden oluşuyor, hazırlama ve inşa bölümleri. Hazırlama bölümü çalışır hale geldi, inşa bölümüne ise bugün başladım.



Bir an önce temel işlevlerle kullanıma açmak için acele ediyorum, bu nedenle bazı özellikleri yazmadan bıraktım, örneğin: kayıt dosyasında xml yerine düz metin biçimi kullandım, options menüsünde olmasını istediğim seçenekleri ve hazırlama aşamasındaki exclude işlemini yazmadım, bazı ayarları koda gömdüm, inşa bölümünde de atlayarak ilerliyorum vs. En azından bir alpha seviyesine gelince sourceforge gibi bir yere GPL lisansıyla yükleyeceğim, ama tatil bitiyor, birkaç hafta bekleteceğim sanırım.

23 Ağustos 2008 Cumartesi

Smooth Jazz ver bana gazz

Pardus için yazdığım çevrimdışı güncelleme yardımcısını kurulum CD'sinde bulunmayan PyQt4 ile geliştirmişim. Geliştirmişim diyorum çünkü bu trajik-komik durumu interneti olmayan bir kullanıcının test ederken aldığı "
ImportError: No module named PyQt4" hatasıyla anlamış olmamdan dolayı yaşadığım dumuru hala üzerimden atamadım. :D

Bu sabah programı pek içimden gelmeyerek PyQt'ye uyarlamak için biraz kurcaladım ama bu iki kütüphanenin birbirinden temel farklılıkları olduğunu anlayınca bu işi şimdilik bir kenara bırakıp programı bir komut satırı aracına dönüştürmenin daha az acı vereceğine karar verdim. Bu projeyi Qt ve özellikle QtXml'i tanımak için yapmıştım, beni teselli eden herhalde bu amacıma ulaşmış olmam oldu. Tabii bunu yaparken işe yarar bir şeyler ortaya çıkmasını da istiyordum.

Ancak kodlarla boğuşurken bu defa farklı olarak üyesi olduğum www.live365.com'dan bir Smooth Jazz [1] kanalını Amarok ile açtım. Kod yazarken ihtiyaç olan konsantrasyon, meditasyon, navigasyon vs.için oldukça etkili olduğunu fark ettim. Genelde sıkı bir Jazz dinleyicisi değilim ama sesi fazla açmadan yan taraftaki bir caz kulübünden odaya süzülen melodiler havasında dinlenen bu tür Cazın "Cazz'n Gazz" etkisini de hiç hafife almayın ve deneyin derim.

[1] http://www.live365.com/stations/bo67

30 Temmuz 2008 Çarşamba

Pardus'da çevrimdışı güncelleme (Pogy)

Soru: Emekleme aşamasındaki bir "python coder" bu konuyu proje olarak seçerse ne olur?
Cevap : pogy.tar.gz

İlgililerin paketteki README dosyasını okumasını... (Henüz beta bile olmadığını düşünerek pisilemedim.)

15 Temmuz 2008 Salı

Pogy



Bakalım zaman bulup bitirebilecek miyim? Aslında sistemdeki mevcut paketleri ve depo indekslerini tarayan birkaç python sınıfı yazdım, hatta konsoldan güncellenecek paket listesini bile aldım, yani işin özü tamam gibi ama derlenip toparlanması ve hata ayıklaması var. Hadi hayırlısı...


23 Nisan 2008 Çarşamba

Python ile QtXml sınıfını kullanmak


Bugün beni saatlerce uğraştıran küçük bir keşif bu. Keşif diyorum çünkü Qt'yi sadece Qt Designer'den kullanmış birisi olarak Qt referans belgeleri arasında kayboldum. Bulabildiğim tüm örnekler C üzerindeydi ve Qt ile xml parse işlemi yapan pek kimsenin olmadığını fark ettim. Herhalde başka kütüphaneler kullanıyorlar ama ben Qt diye tutturdum :) Hele PyQt ile xml parsing örneği bulabilen varsa allah rızası için bana adresini yazsın...

Aslında gerek kalmadı işin mantığını çözdüm, ama hala bana Python ve Qt ayrı dünyalarda gibi geliyor. Madem kimse yazmamış işte ben yazıyorum, Python'da Qt kütüphanesi ile nasıl XML Parse edilir.


XML Dosyası şöyle olsun;


<PISI>
<Distribution>

</Distribution>
<Package>

</Package>
<Package>

</Package>
</PISI>



Minik python kodu da şu;

#!/usr/bin/python


from PyQt4 import QtCore, QtXml

#Dosya'yı aç ve oku
f = QtCore.QFile("pisi-index.xml")
f.open(QtCore.QIODevice.ReadOnly)
heap = f.readAll()

#Xml nesnesi oluştur
xml = QtXml.QDomDocument()

#Xml içeriğini nesneye aktar.
#aktarınca parse edilmiş olacak
#geri dönüş değeri 4 adet değişken oluyor
#ve () içinde bu dönen değerler alınabiliyor
#ilk değişken parse işleminin başarı durumu
(success, msg, a,b) = xml.setContent(heap)
print success

#firstChild fonksiyonu adı üstünde
#ilk Xml düğümünü (node) yani root-node'u
#QDomNode nesnesi olarak döndürüyor
first = xml.firstChild()

#QDomNode nesnesinin nodeName fonksiyonu
#düğümün adını döndürüyor
print first.nodeName()

#ChildNodes ise bağlı düğümlerin bir
#listesini tutan QDomNodeList
#nesnesinin döndürüyor
childs = first.childNodes()

#Bu nesnenin at() fonksiyonuna verilen
#parametre kaçıncı düğümü döndüreceğini
#belirtiyor tabii ki dönen nesne de bir QDomNode
firstelement = childs.at(1)
print firstelement.nodeName()

Programı çalıştırınca çıktımız şöyle;

True
PISI
Package

Bu çıktıdan nelerle uğraştığımı da anlamış olabilirsiniz :) Ayrıca Qt ile ilgileniyorsanız ve Pardusunuzda Qt Asistan kuruluysa kendinize bir sürpriz yapın ve "qtdemo" komutunu çalıştırın.

15 Nisan 2008 Salı

PINP v0.1 Released- Pardus için İnternet Paylaşımı

Bir süredir üzerinde çalıştığım pinp sonunda görücüye çıktı.

Yaklaşık 1 aydır Python ve PyQt öğrenmek için ne yapabilirim diye düşünürken en kestirme yolun bir proje üzerinde çalışmak olduğuna karar verdim ve daha önceden "Pardus'da şu da olsa iyi olurdu" dediğim birkaç fikirden bir tanesi olan internet paylaşımı üzerine çalışmaya başladım.

Proje beklediğimden çabuk çalışır hale geldi. Pinp, bilgisayarınıza bağlı olan interneti ikinci bir ethernet kartınız varsa buna bağlı bilgisayarlara da paylaştırma işini tek tıklamayla yapmanızı sağlıyor. Ancak bu sürüm bir nevi Beta olduğundan henüz hata kontrolü veya durum bilgilendirme gibi özellikleri yok, ama denediğim kadarıyla işini iyi yapıyor.

Pardus ekibi bu yaz İnternet paylaşımı için bir staj projesi açıklamış. Umarım stajerler iyi iş çıkarır, o zamana kadar PINP ile idare edin.

Linux ile 1,5 yıl önce tanıştığımda acaba bende bir gün Linux için program yazabilir miyim? diye düşünmüştüm, her şey tahmin ettiğimden çok daha hızlı gelişti. Bu özgür yazılım ve açık kaynak Dünyası gerçekten çok eğlenceli bir yermiş.

Proje Adresi: http://sourceforge.net/projects/pinp/