Python Kullanım Alanları

Bu yazı Python'a yeni başlamış veya başlamayı düşünen kişilere yönelik olacak. Eğer Python'a başlamayı düşünüyorsanız ancak sizin için doğru bir dil olduğun emin değilseniz, bu yazı sizin için.

Python çok çeşitli alanlarda kullanılan oldukça güçlü, dinamik bir programlama dilidir. Python'u farklı kılan özelliklerden biraz bahsetmek gerekirse:

  • Net ve kolay okunabilen yazımı
  • Çalışma esnasında objelerin özelliklerini inceleyebilme imkanı
  • Kolay anlaşılır nesne tabanlı programlama özellikleri
  • Güçlü ifade yeteneği
  • Modüler yapısı
  • Exception tabanlı hata yönetimi
  • Çok yüksek seviye dinamik veri yapıları
  • Çok geniş kütüphaneleri
  • C veya C++ ile ek modüller yazmanın kolaylığı
  • Diğer programlara kodlama arayüzü olarak dahil edilebiliyor olması

    Devamını oku…

Neden nikola'yı tercih ettim?

Eğer statik blog oluşturucuların size göre olmadığını düşünüyorsanız, bu yazı fikrinizi değiştirebilir. Aslına bakarsanız, artık devir statik blog devri. Veritabanları'nın yerini markdown dosyaları ve html şablonları aldı. Statik siteler oluşturulduğu anda kullanılmaya hazır!

Statik bloglar, birtakım programlar tarafından oluşturulmuş html dosyalarından oluşturulan sitelerdir. Bu programlar, örneğin markdown gibi, bir markup dilinde yazılmış olan dosyaları okurlar ve bunları siteyi hazırlamak için kullanırlar. Böylece ortaya, index sayfası, RSS'i, site haritası dahil her şeyiyle tam bir site meydana gelir. Bu şekilde hazırlanmış sitelerin, alışılagelmiş blog sistemlerine göre birtakım avantajları vardır.

  • Güvenlik: Statik siteler, güvenlik açığı bulundurmaz. Çünkü, dinamik olarak sunulan kısımları yoktur.
  • Verimli Kaynak Kullanımı: Statik siteler çok az server kaynağı kullanırlar.
  • Platform bağımsızlığı: Statik siteler, herhangi bir sunucuda rahatlıkla barındırılabilir. Belli bir php, python sürümü veya belli bir işletim sistemi ihtiyacı yoktur.
  • Ücretsiz Server İmkanı: GitHub Pages statik siteler için ücretsiz hosting sağlıyor. Üstelik, bununla birlikte kendi domain adınızı kullanabilirsiniz.

    Devamını oku…

Blogum yenilendi

Belki farketmişsinizdir, blogumu yeniledim.

Bir süredir tumblr tam olarak içime sinmiyordu. Blogum üzerinde daha fazla kontrol istiyordum. Bunun için, bir hosting paketi almaya karar verdim.

Tumblr blogunu taşımak biraz uzun sürdü. Çünkü taşıma esnasında bir hayli özen gösterdim. Linkleri düzenledim, yazıları gözden geçirdim, derken baya uğraş verdim.

Ancak bu uğraşa değdiğini düşünüyorum. Bloğun bu hali içime sindi.

Mutlaka bazı yerlerde arıza çıkacaktır, lütfen gördükçe mail yoluyla bana bildiriniz. Şimdiden teşekkür ederim.

Java izlenimleri 2

Yaklaşık 1 haftadır (belki daha fazla da olabilir, tam emin değilim) az çok Java'yla uğraşıyorum, az çok birşeyler yazdım;

  • yas git benzeri versiyon kontrol sistemi (gibi birşey)
  • HttpTools Http araçları kütüphanesi olacak, şimdilik sadece sitelerin durum kodların topluca almaya yarayan bir class var.
  • MathTools Asal sayı, narsist sayı bulma ve labirent oluşturma class'ları
  • wikicategory WikiPedia'a bir kategorideki makaleleri komple almak için bir class

Java'nın ve NYP'nin mantığını biraz daha iyi kavramaya başladığımı hissediyorum. Ancak, halen alışamadığım şeyler var.

Devamını oku…

Java'da ilk izlenimlerim

Uzun zamandır java'yı denemek istiyordum ama nedense içten içe ayak diretiyordum. Şu günlerde biraz java öğrenmek için fırsatım oldu. Java diliyle ilgili ilk izlenimlerimi buradan paylaşayım dedim. Daha önce Python ve C gibi dillerle ufak tefek programlar yazan bana, Java bir hayli farklı geldi. Şimdilik alışamadığımı söylemem gerek.

Java dilinin en belirgin özelliklerinden birisi, Türkçe'ye nesne yönelimli programlama diye çevrilen "Object-oriented programming" paradigmasına sahip bir dil olması. Python'da da sınıflar ve objeler var ancak Java tam anlamıyla bir NYP dili. Beni billenler bilir, C++ ve genel anlamda NYP konusuna karşı biraz antipatim var.

Devamını oku…

Python'da iki tarih arasındaki gün farkı

Bu çok kısa bir yazı olacak. Elimizde iki adet date veya iki adet datetime objesi varken;

>>> from datetime import date
>>> a = date(2012,12,25)
>>> b = date(2012,12,18)
>>> a-b
datetime.timedelta(7)
>>> (a-b).days
7

İki tarihi birbirinden çıkarmak timedelta objesi döndürüyor. Bu objenin de days niteliği iki tarih araındaki zaman farkının gün cinsinden değeri. Unutmamak için buraya not alıyorum.

Xlib, ne kadar zor olabilir ki?

Dün müydü, ondan önceki gün müydü hatırlamıyorum, aklıma bir fikir geldi. Mouse ile tıkladığım noktaları bir yere kaydedeyim, bir kaç gün veri topladıktan sonra da scatter plot'unu çizerim, enteresan birşey olur diye düşündüm.

Mouse ile tıklanan noktaları bulmak kısmını Xlib ile yapmak gerekir diye düşündüm, gui kütüphaneleri işimi görmüyordu, çünkü programın pencere oluşturmadan arka planda çalışması, hangi pencere seçili olursa olsun, mouse tıklanma durumunu görebilmesi lazımdı. Aradan bir miktar araştırma süresi geçtikten sonra, #xorg-devel'de şöyle bir muhabbet geçti;

Devamını oku…