[Gelistirici] Yeni eklenen paketler

Necmettin Begiter necmettin.begiter at gmail.com
15 Eki 2007 Pzt 15:30:13 EEST


15.10.2007 tarihinde Faik Uygur <faik at pardus.org.tr> yazmış:
> On Monday 15 October 2007 13:18:56 Doruk Fisek wrote:
> > Mon, 15 Oct 2007 12:34:14 +0300, Faik Uygur <faik at pardus.org.tr> :
> > > Bu da hem akregatorde takip etme açısından işe yarar bir bilgi hem de
> > > paket yöneticisinde kullanılabilir.
> >
> > Peki uzun sure guncellenmemis bir bilgisayarda durum nasil olacak?
> >
> > Yani Pisi o RSS beslemesinin hangi noktasindan itibaren gosterecegini
> > nereden bilecek?
>
> Bu bir sorun tabi ama RSS mantığında düşünürsek yakaladığı son bilmem kaç
> taneyi alabilir her zaman. RSS'i de uzun süre çekmezsek kaçırdığımız şeyler
> oluyor.
>
> > Bana her durumda elindeki indeksle yeni cektigi indeksi karsilastirmasi
> > gerekecek gibi geldi. Yoksa ben mi bisi kaciriyorum?
>
> Tam farkı görmek için mutlaka bu şekilde olması gerekiyor tabi. Ama 3 ay, 6 ay
> ara ile güncelleme yapmamış birine tüm yeni paketleri göstermek gerekli mi
> diye de düşünebiliriz belki. Bu kadar uzun süre makineye dokunmayan yeni
> paketlerle de ilgilenmiyor olabilir. Bilgilendirme amaçlı yapılan bir şey bu.
> Yoksa o an var olan tüm paketleri zaten görebiliyor, aratıp indirebiliyor
> yine. Bu şekilde tüm paketler değil de, "Depoya son eklenen paketler" ya
> da "Depoya son eklenen 10 paket" gibi bir başlık altında oluyor gösterim.
> En az depo'ya yeni paket eklenme sıklığında günceleme yapan birisi
> kaçırmayacaktır.
>
> RSS'li bir yapı kurarsak hani hard coded ve yalnızca paket yöneticisi içinde
> var olacak bir diff kodu yazmanın ötesinde daha genel bir çıktı da olur, ne
> bileyim Akregator'den de takip edilebilir fikri hoş geldi aslında. RSS
> içeriği ilerde genişletilebilir, standart bir yapı üzerinden paket yöneticisi
> de bundan faydalanabilir gibi bir şeyler vardı kafamda. Fikir sadece...
>
> - Faik

Bir RSS beslemesinden okuduğu zaman, o beslemenin son görüntülenme
tarihi ile RSS beslemesindeki channel:lastBuildDate (beslemenin en son
ne zaman güncellendiğini gösteren alan) alanını karşılaştırırsa o
tarihten bu yana olan öğeleri gösterebilir. Bu besleme okuyucuların
standart davranışlarının bir parçası zaten. Bunu PiSi'ye kazandırmak,
PiSi'ye "yeni eklenen paketler" özelliğini eklememizi sağlar. Bu
takibi PiSi ile değil RSS ile yapan birisi, hoşuna giden yeni bir
paket eklendiğinde RSS vasıtasıyla haberdar olur. Ara sıra Paket
Yöneticisi'ni çalıştıran kişinin "Yeni Eklenen Paketler" sekmesi de
böylece her zaman doğru sonucu üretebilir.

RSS'lerdeki <item>ların içinde <pubDate> bulunur. O öğenin ne zaman
yayınlandığını gösterir. RSS'lerdeki <channel>ların (item'ın üst
öğesi) <lastBuildDate> öğesi beslemenin güncellendiği son tarihi
gösterir. Eğer kullanıcının son güncelleme yaptığı tarih 20071010 ise
ve RSS'mizdeki <channel>ın <lastBuildDate>i 20071015 ise <pubDate>i
20071011+ olan <item>lar gösterilir. Eğer <channel>ın <lastBuildDate>i
20071010- ise zaten gösterilecek birşey yoktur.

RSS yapısı:
<rss..>
<channel>
<title>başlık</title>
<description>açıklama</description>
<lastBuildDate>son güncellenme tarihi</lastBuildDate>
<item> (bundan bizim istediğimiz sayıda olabilir)
<title>öğe başlığı</title>
<link>Öğenin içeriğinin okunacağı dosyaya köprü (örneğin
http://a.com/guncelleme.py?oge=45)</link>
<pubDate>öğenin yayınlanma tarihi</pubDate>
</item>
</channel>
</rss>

Yani aslında RSS bize tarih altyapısı için hazır bir sistem sunuyor
zaten. Bize tarihleri karşılaştırıp öğeleri süzmek kalıyor.

Necmettin


Gelistirici mesaj listesiyle ilgili daha fazla bilgi