arşiv

yazılar buna göre etiketlendi; ‘yenilikler’

istihza.com: Yenilikler

Pazartesi, 10 May 2010

Bugün istihza.com‘u ziyaret edenler, Python 2.x bölümünün büyük oranda yenilendiğini de görmüşlerdir. 10 Mayıs 2010 itibariyle istihza.com’da bazı yenilikleri uygulamaya koyduk. Peki nedir bu yenilikler?

Bildiğiniz gibi, istihza.com’daki belgelerin en eskisi 2007 yılına ait. Haliyle artık bu eski bölümleri yeni bir bakışla gözden geçirmenin zamanı gelmişti. Eski bölümleri yenilemek amacıyla bir süredir belgeler üzerinde çalışıyordum. Bu çalışmanın sonunda şöyle bir şey ortaya çıktı:

1. İçindekiler tablosunda göreceğiniz gibi, ilk 11 bölümün tamamı yenilendi. Mesela şimdiye kadar Liste, Demet ve Sözlükler adıyla tek bölüm halinde sunduğumuz belgeler artık Listeler, Demetler ve Sözlükler olmak üzere üç ayrı bölüme ayrıldı ve her bölüm olabildiğince ayrıntılı bir şekilde anlatıldı.

Aynı şekilde, ilk bölüm de üçe bölünüp genişletildi. Artık ilk üç bölüm şu belgelerden oluşuyor:

- Temel Bilgiler,

- Python’a Giriş,

- Python Programlarını Kaydetmek

Bu üç bölüm sayesinde okuru Python programlama diline iyice ısındırmış olacağız. Bu bölümlerdeki konular GNU/Linux ve Windows kullanıcıları için ayrı ayrı anlatıldı.

2. İlk 11 bölümdeki tek değişiklik bütün belge içeriğinin yeniden yazılmasından ve bölümlere yeni belgeler eklenmesinden ibaret değil. Artık her belgenin sonunda “Bölüm Soruları” adlı yeni bir kısım daha var. Bölüm sorularının amacı, belge boyunca işlenen konuları okurların pekiştirmesini sağlamak.

Bölüm soruları sürekli olarak güncellenmeye ve bu bölüme her fırsatta yeni sorular eklenmeye devam edecek.

3. Bütün bunların dışında, okurun sitedeki bilgileri daha rahat tarayabilmesini sağlamak amacıyla, Python 2.x bölümüne bir de dizin desteği ekledim. Her sayfanın sağ üst köşesindeki “dizin” bağlantısına tıklayarak dizin bölümüne erişebilirsiniz. Sitedeki bütün belgeleri dizine ekledikçe tabii ki bu dizin de zaman içinde genişleyecek.

İlerleyen günlerde siteye yeni belgeler eklenmeye ve eski belgeler de gözden geçirilmeye devam edecek.

Sitedeki yenilikleri beğeneceğinizi umuyorum.

İyi çalışmalar

istihza.com , , ,

istihza.com Yenileniyor…

Salı, 25 Ağu 2009

Çok yakında istihza.com‘da birtakım önemli değişiklikler yapmayı planlıyorum. Bu değişiklikler hem benim, hem de istihza.com takipçilerinin işini epey kolaylaştıracak…

istihza.com’daki bu yenilenme sürecinin ilk adımı olarak giriş sayfamızın görünüşünde bazı değişiklikler yaptım.  Bu şekilde galiba biraz daha “iç açıcı” bir giriş sayfamız oldu…

Ayrıca artık istihza.com’un bir logosu  da var!… (logoyu GNU/Linux’un güzide yazılımlarından Inkscape ile yaptım)

Henüz bu değişiklikler sitenin tamamına yayılmış değil. Ama asıl büyük yeniliğin gelişiyle birlikte zaman içinde sitenin bütün görünümü ve teknik altyapısı değişecek…

Sevgiler,

istihza

Uncategorized , , ,

Python 3.1 Yenilikleri

Pazartesi, 03 Ağu 2009

Python geliştiricileri, yeni nesil 3.x sürümleri üzerindeki çalışmalarını sürdürüyor. Python’un hem 2.x sürümleri hem de 3.x sürümleri devamlı olarak güncellenmeye ve bu sürümlere yeni özellikler eklenmeye devam ediliyor.  Bu çalışmaların bir parçası olarak geçenlerde Python’un 3.1 sürümü yayımlandı. GNU/Linux dağıtımları henüz resmi olarak Python’un 2.x sürümlerini destekliyor. Python 3.x paketleri ise sadece birkaç GNU/Linux dağıtımında bulunuyor.  Benim bildiğim kadarıyla şu anda sadece Fedora ve Ubuntu dağıtımları Python’un 3.x sürümlerine ait paketleri depolarında tutuyor.

Ubuntu depolarındaki en yeni Python sürümü 3.0. Ancak yakın bir zamanda 3.1 sürümünün de depoya alınacağını tahmin ediyorum… Elbette hem Windows kullanıcıları hem de GNU/Linux kullanıcıları eğer isterlerse Python’un resmi sitesinden Python’un en son sürümünü de indirip bilgisayarlarına kurabilir…

Python’un 3.1 sürümünde, 3.0 sürümüne göre bazı farklılıklar bulunuyor. İsterseniz bu farklılıkların en önemli olanlarına şöyle bir göz gezdirelim:

Python’un 3.1 sürümüne “OrderedDict“, yani “sıralı sözlük” adlı yeni bir sınıf eklendi.  Bildiğiniz gibi, Python’daki “dictionary” (sözlük) veri tipi sıralı bir yapı sunmuyor.  Yani sözlük elemanlarına, sözlüğe eklenme sırasına göre erişemiyoruz. Sözlükler verileri karışık olarak yerleştiriyor. Python’un 3.1 sürümü ile birlikte gelen OrderedDict sınıfı sayesinde bu kısıtlamadan kurtulmuş oluyoruz.  OrderedDict sınıfı Python’daki “collections” adlı modülün bir parçasıdır. “collections” modülü Python’un 2.x sürümlerinde de bulunuyor. Ancak bu modül 3.x sürümleriyle birlikte boyut olarak epey büyüdü. Python’un 2.x sürümlerindeki collections modülüyle 3.x sürümlerindeki collections modülünün içeriğini karşılaştırdığımızda bu fark açık bir şekilde ortaya çıkıyor:

Python 2.6:

>>>import collections
>>>dir(collections)
['Callable', 'Container', 'Hashable', 'ItemsView', 'Iterable', 'Iterator', 'Keys
View', 'Mapping', 'MappingView', 'MutableMapping', 'MutableSequence', 'MutableSet', 'Sequence', 'Set', 'Sized', 'ValuesView', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_abcoll', '_iskeyword', '_itemgetter', '_sys', 'defaultdict', 'deque', 'namedtuple']

Python 3.1

>>>import collections
>>>dir(collections)
['ByteString', 'Callable', 'Container', 'Counter', 'Hashable', 'ItemsView', 'Ite
rable', 'Iterator', 'KeysView', 'Mapping', 'MappingView', 'MutableMapping', 'MutableSequence', 'MutableSet', 'OrderedDict', 'Sequence', 'Set', 'Sized', 'UserDict', 'UserList', 'UserString', 'ValuesView', '_Link', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_abcoll', '_chain', '_heapq', '_iskeyword', '_itemgetter', '_proxy', '_repeat', '_starmap', '_sys', 'bytearray_iterator', 'bytes_iterator', 'defaultdict', 'deque', 'dict_itemiterator', 'dict_items', 'dict_keyiterator', 'dict_keys', 'dict_proxy', 'dict_valueiterator', 'dict_values', 'list_iterator', 'list_reverseiterator', 'namedtuple', 'range_iterator', 'set_iterator', 'str_iterator', 'tuple_iterator', 'zip_iterator']

Gördüğünüz gibi, 3.1 sürümündeki collections modülü 2.6 sürümündekine göre bir hayli zengin… İşte 3.1 sürümü ile gelen OrderedDict sınıfını kullanabilmek için öncelikle bu collections adlı modülü içe aktarmamız gerekiyor. Bu modülü içe aktardıktan sonra OrderedDict sınıfını şöyle kullanabiliriz:

from collections import OrderedDict
>>>sıralı = OrderedDict()
>>>sıralı["a"] = 1
>>>sıralı["b"] = 2
>>>sıralı["c"] = 3
>>>sıralı.items()
ItemsView(OrderedDict([('a', 1), ('b', 2), ('c', 3)]))

Gördüğünüz gibi, öğeler eklenme sırasına göre veriliyor…

Python’un 3.1 sürümüyle birlikte gelen bir başka önemli yenilik karakter dizilerinin “format()” metoduna ilişkindir. Bu metot Python’a 3.0 sürümüyle birlikte eklenmişti. Python’un 3.0 sürümünde bu metodu şöyle kullanıyorduk:

print(“bir {0}, bir {1} bir de {2} alacağım”.format(“kalem”, “pergel”, “çikolata”))

Burada parantez içinde vereceğimiz her bir öğe için, print() fonksiyonu içindeki karakter dizisinde numaralandırılmış birer alan oluşturmamız gerekiyor… Python’un 3.1 sürümüyle birlikte bu numaralandırma zorunluluğu ortadan kalktı. Yani yukarıdaki kod parçasını artık istersek şöyle de yazabiliyoruz:

print(“bir {}, bir {} bir de {} alacağım”.format(“kalem”, “pergel”, “çikolata”))

Python burada gerekli numaralandırma işini otomatik olarak kendisi halledecektir.  Eğer öğeleri normal sırasının dışında yazdırmak istersek elbette kendimiz de öğeleri numaralandırabiliriz:

print(“bir {1}, bir {0} bir de {2} alacağım”.format(“kalem”, “pergel”, “çikolata”))

Python 3.1 ile gelen ve bizim burada inceleyeceğimiz son yenilik yine collections modülü ile ilgilidir…

Yukarıda Python 3.1 altında verdiğimiz dir(collections) çıktısına baktığımızda orada “Counter” adlı bir sınıf olduğunu görüyoruz. İşte o sınıf Python’a 3.1 sürümüyle birlikte girdi… Bu yeni Counter sınıfı, bir dizi içindeki öğelerin sayısını kolay bir şekilde öğrenmemizi sağlıyor:

>>>from collections import Counter
>>> li = ["elma", "armut", "kebap", "armut", "elma", "çilek", "pırasa", "kebap",
"armut", "elma", "pırasa", "armut", "elma", "kebap", "çilek"]
>>>Counter(li)
Counter({‘elma’: 4, ‘armut’: 4, ‘kebap’: 3, ‘pırasa’: 2, ‘çilek’: 2})

Demek ki “li” adlı liste içinde “elma” öğesi 4 kez, “armut” öğesi 4 kez, “kebap” öğesi 3 kez, “pırasa” öğesi 2 kez, “çilek” öğesi ise 2 kez geçiyormuş…

Aslında Python 3.1 ile gelen yenilikler bu kadarla sınırlı değildir. Ben burada yalnızca en dikkati çeken yeniliklerden birkaçına değinmekle yetindim. Yeri geldiğinde bu yeni özellikleri istihza.com içinde daha ayrıntılı bir biçimde anlatmaya çalışacağım. Şu anda “Fonksiyonlar” konusunu yazıyorum. Birkaç gün içinde onu da Python 3.x bölümüne ekleyeceğim.

İyi çalışmalar,

Fırat

Python , , , , ,

Çapak!

Cumartesi, 07 Şub 2009

Bir günlük oluşturmak ne zamandır aklımda olan bir şeydi. Böyle bir günlük sayesinde istihza.com’un daha “etkileşimli” bir hale geleceğini umuyorum. Burada ağırlıklı olarak istihza.com’daki gelişmeleri ve yenilikleri duyuracak olsam da, konu olarak bir sınır koymuyorum kendime. Burayı konu çeşitliliği açısından daha esnek bir alan olarak tasarladım.

Madem burada istihza.com’daki gelişmeleri ve yenilikleri duyuracağız, o halde ilk bilgileri verelim:

1. istihza.com’un görünüşünde bazı değişiklikler yaptım. Bu şekilde sitedeki bilgilerin daha derli toplu görüneceğini düşünüyorum.

2. Artık her sayfada bir gezinti çubuğu var. Böylece sitenin her yerine her yerden rahatlıkla erişilebilecek.

3. Belki de sitedeki en önemli yenilik, kodların renklendirilmiş olması. Artık verilen kodlar ve bu kodlardan alınan çıktılar farklı renklerde gösterileceği için, yazıları okuyup anlamak daha kolay olacak.

4. Buradaki yazılar python.quotaless.com adresindeyken hatırlarsanız ana sayfada site içinde arama yapabileceğiniz bir kutucuk bulunuyordu. istihza.com adresine taşındıktan sonra bu kutucuğu kaldırmak zorunda kalmıştım, çünkü yeni yerimize geçtiğimizde Google henüz sitenin bütün sayfalarını indekslememişti. O yüzden o kutucuğun ana sayfada durması boş ve anlamsız olacaktı. Ama artık Google sitenin bütün sayfalarını indekslediği için, arama kutucuğunu ana sayfaya tekrar ekledim.

5. Yakın zamanda yazılar arasına yeni bir bölüm daha eklenecek: Düzenli İfadeler. Aslında konunun büyük bölümünü yazdım. Ama hâlâ şekil olarak içime sinmeyen kısımlar var… Her şey tamam olunca Düzenli İfadeler de yazılar arasındaki yerini alacak.

Python ,