Excel’e Python ile Resim Ekleme

Oyunlarda ki hataları raporlarken ekran görüntüleri alıp bir tabloya dizmek sonrada yanlarına açıklamaları yazmak gerekiyor. 100’e yakın ekran görüntüsünü elle excel’e ekledikten sonra bunu otomatik yapmak için bir çözüm aramıştım. Diğer dillerde çeşitli kütüphaneler mevcut ama python için işime yarayan sadece bir kütüphane bulabilmiştim. Hazır vaktim varken bloga ekleyelimde tarihin tozlu sayfalarında kaybolmasın.


import os
from xlwt import Workbook

imagetype = ('.bmp','.BMP')
ourpath = os.path.realpath(os.path.dirname(__file__))
row_number = 0
w = Workbook()
ws = w.add_sheet('Image')
for files in os.listdir(ourpath):
t = os.path.splitext(files)
limits = len(t)/2
addedimage = 0
if t[1] in imagetype and addedimage < limits:
addedimage = addedimage + 1
ws.insert_bitmap(files, row_number, 0)
row_number = row_number + 15
print "file name is %s" % files
print "the image file added to excel"
w.save('images.xls')

Yağmur

Renksizdir, sadece etrafındakilerin renklerini çalar.
Sessizdir, duyduğunuz ya onu doğuran anasının çığlıklarıdır,
Ya da vurduklarının haykırışları…
Düşüncesizdir, kime zarar vereceğini kime yardım edeceğini hesaplamaz.
Acımasızdır, toprağa can verir ama kayayı da parçalar.

Django İle Sunucuya Taşınma

Sonunda taşınma işi bitti! Evet arkadaşlar sorunları halledip sistemimi tamamen sunucuya taşıdım. İlk django sitem nysera.net artık açık ama test yayınında diye not düşüyorum! Duyurusunu şimdiye kadar yapmamıştım çünkü tüm problemleri halledememiştim lanet bir satırın sonuna “/” işaretini koymayı unuttuğum için 10 sayfa hata kaydını okumak zorunda kaldım. Baştan daha dikkatli okusaydım bu sorunu yaşamayacaktım hatalara bakıyordum “mediaccs” diye bir şey var dikkatimi çektide anca fark ettim.

Django’yu Ubuntu kurulu bir sunucu üzerinde Emre Yılmaz‘ın tavsiyesi ile apache ve mod_wsgi ile çalıştırıyorum. Aslında çoğu sitede mod_python örneği gösterildiği için onu kullanacaktım ama Emre’nin uyarısıyla mod_wsgi’a geçtim. Kendi hatalarımda dışında gayet memnunum.

Neyse mod_wsgi kullanmak için bu dökümanı tavsiye ederim.

Temel olarak kaynak kodlarınız arasına django.wsgi isimli bir dosya ekliyorsunuz sonra apache de confing dosyanıza bir iki ekle site hazır hale geliyor. Fazla uğraştıracak bir kısmı yok ama ben admin medya dosyalarının adresini düzgün yazmamışım. Öncelike ilk hata dökümanın tekinden direkt kopyalamam olmuştu. Bu Linux’a ne kadar alışık olduğunuzla alakalı bir şey hiç aklıma gelmemişti kütüphanenin orada olmayabileceği, sonra kendim arayıp doğru dizini buldum. Belki de bilerek yanlış yazmışlardı doğrusunu öğrenmemiz için… /usr/lib/ altına bakmanızı tavsiye ederim. Sonra bu konumu yazarken satırın sonuna “/” eklemeyi unutmayın derim. Apache’yi yeniden başlatırken bir uyarı vermiyor ama sitenizin kayıtlarına baktığınızda uzun bir listeyle karşılaşıyorsunuz^^

Bir başka hata debug seçeneğini kapattıktan sonra 404.html ve 500.html gibi hatalar için gerekli dosyaları oluşturmamaktı. Debug seçeneği açıkken Django’nun kendi hata sayfalarıyla karşılaşıyorsunuz ama debug’ı kapattığınızda bu dosyaların template klasörünüzde bulunması gerekiyormuş.

Bir diğer hata Türkçe karakter problemiydi. Şimdiye kadar hep sqlite üzerinde çalıştığım için mysql’de ayarların nasıl yapılacağı konusunda pek bilgim yoktu. Türkçe karakter problemini gidermek için yeni bir veritabanı oluşturmam gerekti ama bu sefer veritabanını oluştururken CREATE DATABASE mydb DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; şeklinde karakter set ve collation ayarlarını ekledim. Bu Türkçe karakter problemini ortadan kaldırdı. Zaten kodları utf8 ile kaydediyorum tema dosyalarında da kodlama bilgisi utf8 olarak geçtiği için başka bir ayar yapmama gerek kalmadı. Bu tüyoyuda Ozan Hazer‘in blogundan öğrendim, kendisine buradan teşekkür ederim.

Başka bir hata da setuptools’u kurmayışımdı. Django eggs dosyalarını kullanıyormuş. Ben bunu bilmiyordum dökümanın tekinde de kurulması gerektiği yazmıyordu ama eğer kendi sunucunuzu yönetiyorsanız python-setuptools’u da mutlaka yükleyin. Egg nedir merak ediyorsanız IBM’in geliştirici sitesinde çok güzel bir makale mevcut, işinize yarayacaktır.

Umarım bu yazı işinize yarar. Herkese kolay gelsin

NNO-X

Bir önceki numara kaçtı hatırlamadığım için bu sayıya X dedim. Bundan sonrası olur mu bilmem ama epey uzun bir süredir yazmadığım için arada Neler Neler Olmuş paylaşayım istedim. Bundan sonra devamı gelirse tekrardan isim uydurmaya çalışırım 🙂

Öncelikle iyi bir haber verelim. İşe başladım, iyi gidiyor çok şükür gayet sıkı bir tempoyla çalışıyoruz, zaman nasıl geçiyor fark etmiyorum. Bu sabah yürüyüşe çıkmıştım eskiden her sabah yaptığım gibi. Önünden geçtiğim bir inşaat vardı temeli atılacaktı bugün aparmanlardan birisine üçüncü kat çıktıklarını gördüm, bir garip oldum haliyle. Çok şükür hava güzeldi, hafta sonunun keyfini bir nebze olsun çıkarabildim. FriendFeed de yazdığım gibi, parmaklar arasından süzülen ılık rüzgar, yüze vuran hafif bir güneş ve ciğerlerime çektiğim çam kokulu enfes hava beni kendime getirdi. Hayatta mutlu olunacak, şükredilecek çok şey var.

Gelelim ortaya attığım ulusal sanal kimlik projesinden sonra yaşananlara. Bir kaç eleştiri aldım, kimisi yazdığımı tam olarak anlamamıştı ya da elbette ben anlatamamıştım, başka birisi kişisel gizliliğinin ihlalinden korkuyordu, başkasıysa fişlenmekten… Ardından haber geldi bir kamu kurumu her T.C. vatandaşına bir e-posta adresi verecekmiş. Ulusal arama motoru da yapılacakmış da mışmış. Ehh her vatandaşa e-posta adresi verilirken herhalde tc kimlik numaramızdan faydalanırlar kontrol için…

Ben önerimi getirirken bu işin halk tarafından yapılmasını ve yine halk tarafından kontrol edilmesini önermiştim. Bunu söylerken izlediğim bir kaç film, okuduğum yine bir kaç kitapta öğrendiklerimi günümüze uyarıp bir şeyler belki önlemini alırız diye düşünmüştüm. Bizim devlet e-devlet konusunda pek başarılı olduğunu düşünmüyorum, büyük ihtimal bu proje bitirilmez ama kaçınılmaz olan elbet bir gün yapılacak.

Fişleneceksiniz! Hemde hepiniz! Doğar doğmaz! Teknolojinin daha doğrusu dünyanın nereye gittiğini sanıyorsunuz? Eminim benim izlediklerimi ya da okuduklarımı sizde okumuşsunuzdur. Toplumda artan kargaşıyı önlemek, suçluları hızlı bir şekilde cezalandırmak için her vatandaş bir gün fişlenecek/etiketlenecek/damgalanacak’tır. Bunun yapılmasını da bizzat toplum isteyecektir. Çünkü bir noktaya gelindiğinde suç oranını düşürmek için her yol mübah görülecektir. Sizlerin şimdi kişisel gizlilik diye itiraz ettiklerinizin kat kat daha fazlası “kişisel” güvenliğiniz için uygulamaya geçirilecektir. İyi veya kötü olur orasını bilemem… Bu uygulamanın nasıl yapılacağı ve denetleneceği ile ilgilidir ama devletlerin ellerinde ki bu gücü vermeye, yumuşatmaya gönüllü olacaklarını sanmıyorum.

Amerika da mıydı? Ülkeye gelen turistlerin parmak izleri alınıyor. İnsanlar buna tepki gösteriyordu, bir taramıza elektronik bir çip yerleştirildiğinde bakalım neler olacak. 😀

Gelelim başımızın belasına site işlerine. Kodlar hazır ama bir türlü sunucuyu kiralayıp ayarlamayla uğraşacak vaktim olmadı. Böyle hem çalışırım hem ikinci olarak sitelerle uğraşırım diyordum ama bilmiyorum ki neler olacak. Üzülerekte olsa oyun ekibimizden ayrıldım. Projeye ayıracak vaktim olmadığı için… inşallah ileride başka bir fırsat yakalayıp arkadaşlarıma destek verebilirim. Site tasarımı bitmişti dediğim gibi ama bu sadece geliştirici ekip için tasarladığım merkez. Bir de açılışını yapacağımız dizi-sinema portalı vardı ona daha hiç bakamadım. Hoş pek bakmam gerekmeyecek Drupal sağolsun ama yine de bazı şeyleri test etmem gerekiyor.

Başka… izlediğim dizilerden bahsedeyim. Ezel ve The Prisoner’ı kaçırmamaya çalışıyorum. Düzenli izlediğim bir onlar var diğerleri tatilde 🙂 Doctor Who’ya bakamıyorum bir ara DVD’sini bulup toplu izlerim ama şu iki dizi gerçekten çok iyi. Ezel’de ki Ramiz dayı nedir öyle ya? Ian McKellen’da The Prisoner’da döktürüyor zaten sırf onun için izlediğim söylenebilir. Böyle uzun sürmeyecek tadında bırakacak diziler iyi oluyor mesela Angels in America. Neyse şimdilik bu kadar, herkese iyi günler dilerim.

OpenGTS

GPS takip sistemleri hakkındaki bir önceki yazımı mart ayında yazmıştım. Aradan geçen zamandan sonra bu projeden yeni haberim oldu. Şuan 70 ülkede kullanıldığı söylenen yazılımın Türkçe yerelleştirilmesi de yapılmış.
Önceki yazıda bahsettiğim OpenDMTP’yi de kullanan yazılımın özelliklerinden bahsetmek gerekirse.

  • Web-temelli kimlik denetleme,
  • Uyarlanabilir web tasarım,
  • Uyarlanabilir harita servisi,
  • Uyarlanabilir raporlar(detay ve özet bilgi sayfaları),
  • Cihaz bağımsızlığı,
  • İşletim sistemi bağımsızlığı,
  • Uyarlanabilir coğrafi bölgeler.

OpenGTS çoğu kişinin işini görebilcek türde bir yazılım. Bloguma bu konu hakkında bilgi almak için gelen arkadaşlara kıyağımız olsun. 🙂

Projenin Adresi : http://www.opengts.org/
Projenin Demosu: http://track.opengts.org/track/Track

Django order_by Problemi

Evet bugün karşılaştığım nu konuyu paylaşmak istedim. Django kullanan diğer arkadaşlar fikir belirtebilirler. Şimdi şu şekilde bir listemiz var:
list = pnews.objects.filter(status=True).order_by(‘-pdate’)
Şimdi normalde beklentimiz pnews objelerini -pdate’e göre sıralamasıdır.

Zaten bu işlemin sonucunda Django bir liste oluşturuyor ama mesele bu listenin içersinde oluşan ayrı bir listenin sonucu +pdate ile vermesi.
İşlem şöyle işliyor. Her gün için ayrı olarak bir liste tutuluyor. Misal bugün girdiğiniz nesne dünden önce çıkıyor. Ama bugun başka bir nesne girerseniz ilk girdiğiniz sonucun son gösterilmesi gerekirken ilk gösteriliyor. Acaba şöyle bir işlem mi oluyor:
(-pdate[-pdate]) Eğer böyle bir şey yapıyorsa ve basit bir çarpma işlemi yüzünden içeride ki pdate + oluyorsa sorunun çözümü nasıl olacak fikri olan buyursun.

Goblins – Life through Their Eyes


Bu gece bahsedeceğim çizgi roman Goblins. Bu da oldukça eski bir seriymiş ama ben yeni duydum ve bir gecede tüm arşivi okudum. 🙂 Konusuna gelirsek bir grup Goblin oyunu kurallarına göre oynamayı bırakır. Önüne gelen oyuncunun onları EXP için öldürmesinden bıkan grup üyeleri kendilerine birer sınıf seçip PC olmaya başlarlar. Level aldıkça güçlenen ve yeni maceralara girişen ekip üyeleri bir birlerine olan bağlılıklarıyla gözlerinizi yaşartacak 😛

Seri daha önce bahsettiklerime göre biraz daha kanlı ve vahşet içeriyor. Ayrıca bildiğiniz FRP’lere daha yakın. Kurallardan sıkça bahsedilebiliyor. Hali hazırda RP oynayanların hoşuna gidebilecek bir seri. Ben beğendim, size de tavsiye ederim. Bu arada resim spoiler içerir. 😀