Author : Neslihan Şirin Saygılı

Neslihan Şirin Saygılı

Posts

İTÜ Bilgisayar Mühendisliği bölümünden mezunum, şimdi doktora öğrencisiyim. Temel olarak ilgilendiğim alanlar bilgi edinilmesi (information retrieval), verinin işlenmesi (metin sınıflandırma, yazar tespiti) ve bu verinin bilgiye dönüştürülmesidir. Python, Java, PHP, Ubuntu, HTTP yığını, Linux-Apache-MySQL üçlüsü gündelik olarak kullandığım araçlardır. Prisync'in kurucu yazılımcılarından biriyim.

Merhaba, bu yazımda 8-16 Nisan 2015’te Montreal’de gerçekleştirilen PyCon‘a dair izlenimlerimi aktaracağım. Anlatmak istediklerimi, yazılım konferanslarına katılmak için neler gerekiyor ve yazılım konferanslarına katılmanın sağladığı faydalar nelerdir soruları ekseninde anlatacağım. Öncelikle PyCon’un ne olduğunu bir cümle ile özetlersem: PyCon, Python topluluğu tarafından, topluluk için düzenlenen ve Python programlama dilinin kullanılmasını ve geliştirilmesini amaçlayan bir etkinliktir. Etkinliğe bu yıl Montreal (Kanada) ev sahipliği yaptı ve gelecek yıl Portland (A.B.D.) ev sahipliği yapacak.

pycon

PyCon’a katılmak için ne yapmak gerekiyor?

Okumaya devam edin...

Sıralama algoritmalarının ilk kısmını içeren yazımda basit sıralama algoritmaları olarak Seçmeli (Selection sort) ve Eklemeli (Insertion sort) sıralama algoritmalarından bahsetmiştim. Bu yazıda gelişmiş sıralama algoritmaları olarak Birleştirmeli (Mergesort) ve Hızlı (Quicksort) sıralama algoitmalarını inceleyeceğim. Bu algoritmaları gerçeklerken hem birleştirme (merge) ve bölümleme (partition) gibi işlemler, hem de özyineleme (recursion) yaklaşımını kullanmış olacağız.

Okumaya devam edin...

Merhaba bu yazımda sıralama algoritmalarını inceleyeceğim. Sıralama algoritmaları çoğumuza üniversite ders sıralarında kalmış görünse de aslında gündelik hayatımızda kullandığımız hemen hemen her teknik aracın işleyişinde rol alıyor. Bundan otuz kırk yıl önce bilgisayar teknolojisinin sunabileceği işlemci, bellek ve sabit disk gibi kaynaklar oldukça sınırlıydı, bu yüzden yapılacak işler için etkili yöntemler kullanmak gerekiyordu. Günümüzde bu kaynaklar kolay erişilebilir hale geldi ama yine de etkili yöntemler kullanmamız gerekiyor, çünkü hala çok daha etkili kullanmak zorunda olduğumuz bir kaynak olan zaman katı bir kısıt olarak karşımızda duruyor.

Çok basit şekilde yaklaşalım, verimliliğe ve karmaşıklığa dikkat etmediğimiz çok büyük sayıda girdiye sahip kötü bir program geliştirdiğimizi düşünelim (lütfen bu sadece kötü bir varsayım olarak kalsın) ve bu programı şu an dünya üzerinde bulunan en gelişmiş bilgisayarda çalıştırma fırsatını bulabiliriz ama bu programın sonuç vermesi için gereken birkaç yılı bulamayız. O yüzden tercihimizi daha az zaman karmaşıklığı içeren algoritmalardan yana kullanmak mantıklı bir yaklaşım olacaktır.

Okumaya devam edin...

Bir önceki yazımda Amazon’un bulut bilişim servislerinden bahsetmiştim. Bu yazıda ise bir diğer bulut bilişim hizmeti sağlayıcısı olan DigitalOcean[1]’dan bahsedeceğim. Oldukça basit ve anlaşılır bir web arayüzünden istediğiniz gibi işlemler yapabilirsiniz ancak daha otomatize şekilde çalışmak isterseniz DigitalOcean API’ye elinizi bulaştırmanız gerekmektedir. DO bir sure önce API V2’yi duyursa da hala API V1’e destek veriyor. Bu yazıda inceleyeceğimiz betik API V1 üzerinde çalışmaktadır. API’ye http istekleri yapmak için Python’da requests [2] kütüphanesini kullanmayı uygun buldum.

İlk olarak API’ye bize yeni bir makine yaratması için yapacağımız isteği oluşturan fonksiyonu inceleyelim.

Okumaya devam edin...

Amazon EC2 (Amazon Elastic Compute Cloud) boyutlandırılabilir işlem kapasitesi sağlayan, bulut üzerinde çalışan bir web servisidir. EC2’nin temel amacı geliştiricilerin daha kolay web ölçekli bulut bilişim yapabilmesi olarak ifade edilmiş.[1] Bu yazıda, EC2 üzerinde aynı anda birden çok makine ayağa kaldırmak için kullandığım koddan bir parça anlatacağım. AWS (Amazon Web Service) web arayüzünden dilediğiniz yapılandırma ayarlarına sahip makineler oluşturabiliyorsunuz, fakat ben daha otomatik bir şekilde bu işi yapan bir betiğe ihtiyaç duydum ve bunun için “boto” [2] isimli Amazon web servisleri için Python dilinde bir arabirim kullanmanın uygun olduğuna karar verdim. (Yazı ve örnek kod, kurulum ve yetkilendirme kısımlarının yapılmış olduğunu varsaymaktadır.)

Örneği üç parçada ele alırsak, ilk olarak çalıştırmak istediğimiz makinenin gerekli ayarlarını göreceğiz.

Okumaya devam edin...

Merhaba, bu yazımda deneyimlerimden yola çıkarak Python’da sıklıkla kullandığım veri yapıları ve tiplerinden bahsedeceğim. Bu yapı ve tiplerin içerisinde “liste” (list) ilk sırada gelir, ikinci sırada ise “katar” (string) yer alıyor.

Liste

Listeyi basitçe, köşeli parantez içerisinde virgüllerle ayrılmış elemanlar listesi olarak tanımlamak mümkündür.
liste1 = [1, 4, 9, 16, 25] ve liste2 = ['a', 'b', 'c', 'd'] birer liste örneğidir.
Liste elemanlarının indexlenebilme özelliği bulunur, zaten listeyi bir dizi olarak düşünebiliriz.

l = [1, 34, 274, -89, 0, 5] listesinden -89 elemanını almak için l[3] kullanmak yeterli olacaktır. Konunun daha anlaşılır olması için python terminalinde yaptığım örnekleri ekleyerek devam edeceğim. (Linux veya MacOS X kullanıyorsanız terminale python yazarak python terminaline geçiş yapabilirsiniz.)

Okumaya devam edin...