python uygulamalarında hata ayıklama – pdb

Program yazarken ortaya çıkan hataların sebeplerini bulmak kodun büyüklüğü, karmaşıklığı ile orantılı olarak zorlaşıyor. Çok sayıda geliştiricinin üzerinde çalıştığı projelerde ya da sonradan dahil olunan projelerde hata takibi daha da zor oluyor.

Python hata durumunda (çoğu zaman) güzel çıktılar sunuyor olsa bile işin o noktaya nasıl geldiğini ve değişkenlerin, argümanların o andaki değerlerini koda müdahale ederek öğrenmek gerekiyor. Bunun için koda print satırları ekleyip değerleri ekrana bastırmak (printf debugging) en sık tercih edilen yöntemlerden. Fakat bu basit yöntem çoğu zaman yetersiz kalıyor.

Bu noktada da `pdb` modülü imdada yetişiyor. debugger’a geçmek istediğimiz noktaya aşağıdaki satırı ekleyerek breakpoint oluşturuyoruz.

import pdb; pdb.set_trace()

Breakpoint’e gelindiğinde debugger shell’e düşüyoruz. Debugger komutlarıyla uygulamanın ilerleyişine müdahale edebiliyor, yeni breakpointler tanımlayabiliyor ve uygulamayı yeniden başlatabiliyoruz. Debugger komutlarının yanısıra tüm python ifadelerini de kullanabiliyoruz.

Sosyal medya editi: Serdar Dalgıç twitter’dan “pdb’den daha iyi bir yöntem olarak ipdb :) github.com/gotcha/ipdb” dedi. Gerçekten de python shell yerine çok daha yetenekli ipython shell’ini kullanabilmek büyük bir avantaj. pdb yerine ipdb kullanmak gayet mantıklı görünüyor.

23 Ocak 2013

Posted In: debug, Gezegen, Kendime notlar, pdb, programlama, python

Hafıza Kartından Silinen Fotoğrafları Kurtarmak

Zaman zaman hepimizin başına gelen can sıkıcı bir durum. İşin en kötü kısmıda kaybedilen bilgilerin tam olarak neler olduğunu bilememek oluyor.
Hafıza kartımdan fotoğrafların olduğu DCIM klasörünün adını değiştirmiştim. Daha sonra telefona taktığımda adını değiştirdiğim klasörün olmadığını gördüm. Telefon bir şekilde o kalsörü silmiş. İçinde neredeyse 1500 fotoğraf olan bir klasör kayboldu. Zamanında yedek almadığım için yine kendime kızdım…

Biraz araştırmadan sonra Ubuntu sistemde veri kurtarma yapabileceğim araçları öğrenip uygulamaya başladım.
Ubuntu’nun topluluk sayfasında sırf bu konu ile ilgili oldukça güzel bir belge buldum. “Data Recovery” başlığını taşıyan sayfa bu konuda oldukça güzel bilgiler içeriyor. Önce testdisk programını denedim. Ancak onda başarılı olamadım. Sanırım gerekli parametreleri doğru yapamadım. Daha sonra komut satırında kullanılan foremost adındaki programla SD Card içindeki fotoğraflarıma ulaşmayı başardım. SD Card’ı bilgisayarıma takıp içindeki klasörleri görebilir hale geldikten sonra aşağıdaki komutu verip 5-10 dakika beklemenin ardından tüm fotoğraflarımı kurtarmıştım.

sudo foremost -t jpg -i /dev/sdb -o /home/kullanıcı_adım/kurtar

Bazı mp4 dosyalara ulaşamadım. Onları da photorec ile kurtarmayı düşünüyorum. Onu da yaparsam yazarım.

20 Ocak 2013

Posted In: data recovery, Gelişmiş, hafıza kartından dosya kurtarmak, sd card silinen fotoğraflar, silinen dosyaları kurtarmak

Bodhi Linux, epey eğlenceli bir eleman

Enlightenment (bundan sonra E diyeceğim) sonunda kararlı 17 sürümünü yayınladı. Yaklaşık 1.3 sürümünden bugüne kullandığım Ubuntu LTS tabanlı E dağıtımı Bodhi Linux ise 2.2.0 sürümü ile bu güncellemeyi ilk sunan dağıtımlardan birisi oldu. Bence E, hız ve hafiflik konusunda harika, Bodhi Linux ise E'yi en iyi, en güncel ve en derli toplu sunan dağıtım. Meraklısı için aşağıda bol görselli bir inceleme var;




Enlightenment

E'ye hız ve hafiflik sağlayan şey küçük boyutlu ve hızlı kütüphaneleri, tüm masaüstü ve E araçları bu kütüphaneleri kullanıyor, böylece araçlar da çok küçük boyutlu oluyor. Basit bir masaüstü için ~40MB hafıza kullanıyor.


Bu özellikleri nedeniyle küçük işlemciler, düşük saat hızları ve az bellek taşıyan aygıtlarda kullanmaya oldukça uygun. Ayrıca sitesinde kütüphanelerin MacOSX ve Windows altında da çalıştığı yazıyor! E'nin oldukça geniş bir geliştirici ailesi bulunuyor.


Kurulum

http://www.bodhilinux.com/ Adresinden indireceğiniz PC kalıpları CD boyutunda. ARM Cihazlar için de kalıplar mevcut.

Kurulum ortamı E'nin profil ve tema seçimi ile açılıyor, burada hangilerini seçtiğinizin kurulum için bir önemi olmayacak. Desktop ve default tema ile devam edebilirsiniz. Sonra masaüstündeki Install seçeneği ile klasik Ubuntu kurulumu yapıyorsunuz. Kurulum 8-10 dk. kadar sürüyor, güncellemeleri kurulumda kurarsanız bağlantı hızınıza göre süre değişebilir. (Kurulum yardımı için Ubuntu kaynaklarına bakmalısınız.)




İlk çalıştırma

Bodhi oturum yöneticisi olarak LXDM kullanıyor, ilk defa giriş yapınca profil ve tema seçmeniz gerekiyor, tereddüt yaşamanıza gerek yok, seçimden sonra değişiklik yapmak kolay.





Tablet profili haricindekiler klasik masaüstü ve dizüstü kullanımı alışkanlıklarına yönelik, tablet profiline de daha sonra bakalım. Desktop profili ve default temasını seçerek devam ediyorum, zaten kurulumda pek fazla tema yok.

Kurulumda hemen hiç ekstra uygulama yok, bu benim özellikle beğendiğim bir şey, Midori (basit bir tarayıcı), ağ yöneticisi, metin editörü, arşiv yöneticisi, oturum yöneticisi ayarları, EFM (dosya yöneticisi), Lxterminal ve tabii ki Synaptic (Paket yöneticisi). Ancak terminal olarak E'nin Terminology uygulamasının kullanılmaması şaşırtıcı.



Modüller 

Kurulumda Türkçe seçtiğimiz halde sistem İngilizce açılıyor. Bunun için E'nin dil ve klavye ayarlarını yöneten modüllerini aktifleştirmek lazım. Modüller E'nin küçük işlevsel parçaları ve sadece ihtiyacınız olanları açmanız yeterli, menüdeki Settings   altındaki kısayoldan ulaşabilirsiniz.


 Modüller farklı kategoriler altında listeleniyor, Dil ayarları modülü Settings kategorisinde, klavye ise Utilities kategorisinde bulunuyor.


Aktifleştirdikten sonra menüden Settings / All / Language yolundan dil ayarlarına ulaşabilirsiniz, burada Türkçe seçeneği mevcut, değişiklik hemen aktif olacaktır. Klavye ayarları da (menümüz genelde artık Türkçe -) Ayarlar / All / Giriş yolunda bulunuyor. F Klavye kullanıcıları ekleme penceresindeki Variant sekmesine uğrayacak. Ekledikten sonra aktif olması için seçeneğinizi en üste almanız gerekiyor.


Eğer bu ayarları sık sık değiştirmeyi düşünmüyorsanız modülleri kapatabilirsiniz, açık modüller bellekte yer kaplıyor ve açılışta başlatılıyor.  (Gerçi E'nin modülleri çok çok küçük boyutlarda, gözünüz korkmasın)


Uygulamalar

Menüdeki Bodhi Linux seçeneği altında Add Software seçeneğine bir göz atın. Bodhi ekibi uygulama kurma işini daha eğlenceli ve basit hale getirmek için http://appcenter.bodhilinux.com/ adresinde bir sayfa hazırlamış ve çok tercih edilen yazılımları ve yazılım gruplarını paket yöneticisi ile uğraşmadan buradan kurmak mümkün.

Paket yöneticisi Synaptic ise Uygulamalar / Tercihler altında. Paket kurma ve güncelleme yapmadan önce depo kaynağını Türkiye'deki sunucuları gösterecek şekilde değiştirmek isteyebilirsiniz, bunu Synaptic'i açıp Ayarlar menüsündeki Depolar altından değiştirebilirsiniz. Bodhi Linux kendi paketleri için ABD'deki bir sunucuyu kullanıyor ama bu depoda genelde az sayıdaki E masaüstü paketleri var, diğer paketler için Ubuntu depoları kullanılıyor.

Uygulama kurulumundan sonra uygulamayı menüde hemen görmek istiyorsanız menüden Enlightenment / Yeniden Başlat seçerek E'yi yeniden başlatabilirsiniz.


Masaüstü

Fark ettiyseniz fareyi hangi pencerenin üzerine götürürseniz sistem o pencereye  odaklanıyor, benim için oldukça sinir bozucu bir şey, bunu değiştirmek için Ayarlar menüsündeki All / Pencereler / Pencere Odaklanması'nı kullanın.

Masaüstünde tıklayınca menü açılıyor, alışık olmayanlar için sorun olabilir ama zamanla alışıyorsunuz.

Ekran köşelerindeki panellere E raf diyor, raf ekleme/çıkarma/ayarlama işlemleri için Ayarlar / All / Extensions / Raflar yolunu takip edin. Raflara ekleyebileceğiniz pek çok araç mevcut, bu araçlar modüller olmadan listede görünmeyecektir, onun için önce modüllerden açmak sonra raflara eklemek gerekiyor.



Raf içeriklerine raflara sağ tıklayarak da ulaşmak mümkün, raflardaki araçların yerlerini değiştirmek için rafa sağ tıklayıp Begin Moving seçmek, mavi çerçeveli hale gelen araçları taşıdıktan sonra yine sağ tık Stop.. seçmek gerekiyor. Raftaki araçlara sağ tıklayınca hem raf (shelf) hem de araç için seçenekler listeleniyor. Örneğin IBar rafta uygulama kısayolları sağlayan bir araç/modül.



E'nin dosya yöneticisi EFM henüz çok yeni bir uygulama, önceden PCManFM kullanılıyordu (ben hala EFM kullanmıyorum) ancak EFM oldukça yeterli ve hızlı, ayarlarına ulaşmak için pencerenin boş bir yerinde sağ tıklayıp Seçenekler / File Manager Settings yolunu takip etmek gerekiyor.


Araç çubuğundaki kalp işareti pencerenin solundaki favori kısayolların bulunduğu konumu açıyor.

Masaüstüne de araçlar eklemek mümkün, masaüstüne tıklayınca açılan menüden  Masaüstü / Change Gadgets seçin, raflarda olduğu gibi eklediğiniz araçlara sağ tıklayıp ayarlarına ve konum/boyut değiştirme seçeneğine ulaşabilirsiniz.


Everything Starter bir şeylere ulaşmak için kullanılabilecek güzel bir araç, dosyalarınız, uygulamalar, ayarlar vs. için yazarak arama yapabiliyorsunuz, bunu rafa ekleyip klasik menü yerine de kullanabilirsiniz.



Tablet Profili

Profili değiştirmek için menüden Ayarlar / All / Ayarlar yolunu izleyin, ilk açılıştaki menüye ulaşacaksınız. Merak etmeyin her profilde yaptığınız değişiklikler kayıtlı kalıyor, ancak kötü haber şu ki; bir profili ilk defa kullanacaksanız dil ve gerekliyse klavye ayarlarını yapmanız gerekiyor.

Tablet profili adı üzerinde küçük taşınabilir cihazlar için geliştirilmiş ve uygulamaları tam ekran açma, masaüstünde kayar ikon menüsü, ekran klavyesi gibi özellikler var. Bu özellikler daha doğrusu modüller modül yöneticisinde Mobile sekmesinde Illume ailesi olarak bulunuyor. Masaüstündeki Raf, yerini Illume Indıcator'a bırakmış oluyor.


Sağ alttaki Bodhi yaprağına tıklayınca uygulamalara ulaşılıyor, buradaki ikonları masaüstüne kısayol yapmak için farenin sol tuşu ile basılı tutmak ve masaüstü gelince buraya bırakmak gerekiyor, masaüstündeki ikonların yerini değiştirmek için ise yine ikona basılı tutmak gerekiyor, ikonlar sallanmaya başlayınca sürükleme ve çarpı işaretiyle kaldırma yapılabiliyor.


İşlem bitince Bodhi yaprağının olduğu yerdeki çarpı işaretine basmak gerekli. Alt taraftaki beyaz noktayı takip ederek 5 adet masaüstüne  kaydırma yapılarak ulaşılabiliyor. Tablette denemediğim için bilemiyorum ama dokunmatik ekranlarda daha çok işlev olabilir, en iyisi Nexus üzerinde çalışan şu videoya göz atın;



Temalar

Bodhi geliştiricileri tıpkı uygulama kurulumunda olduğu gibi temalar için de bir sayfa açmışlar ve işi kolaylaştırmışlar. Menüdeki Bodhi Linux / Art Work yolundan http://art.bodhilinux.com adresine ulaşıyorsunuz. Buradaki sayfalardan kurulum yapılabilir. Ne yazık ki temalar sayıca çok değil ve ben pek çoğunu beğenmiyorum, benim kullandığım tema Detourious.


Yüklediğiniz temaları menüden Ayarlar / Temalar yoluyla değiştirebilirsiniz.

Açıkçası bu tema ve özelleştirme konularına pek zaman ayıran birisi değilim ama Bodhi forumlarında nasıl yapıldığını bilmediğim sanat eserleri paylaşılıyor, sırf göz zevki için bile olsa mutlaka bir göz atın; http://forums.bodhilinux.com/index.php?/topic/141-share-your-desktop/page__st__3800__p__63234


Birkaç ufak şey

Masaüstü kısayolları için Ayarlar / All / Giriş / Kısayol Tuşları yolunu izleyin, örneğin Ctrl+ESC basınca lxtask çalıştırmak için ayarladım.



Chrome tarayıcısı indirilen dosyaları açmak için xdg-open kullanıyormuş ve bu nedenle indirilen dosyalara Chrome içinden tıklayınca açılmıyor, bunu gnome-open olarak değiştirmek için küçük bir hile yapmak lazım, terminale  aşağıdaki komutu yapıştırıp çalıştırın;

sudo mv /usr/bin/xdg-open /usr/bin/xdg-open.backup; sudo ln -s /usr/bin/xdg-open /usr/bin/gnome-open


Bodhi kurulumda dil paketlerini ve bazı çoklu ortam kütüphanelerini  kurmuyor, bunun için Synaptic'ten ubuntu-restricted-extras ve language-pack-tr paketlerini kurabilirsiniz, ayrıca AppCenter'dan LibreOffice kurulumu yapınca yine Türkçe dil paketlerini ayrıca kurmanız gerekecek.

Kullanıcı hesapları yönetimi için Bodhi Linux bir araç sunmuyor, tabii ki konsol en kısa yol ama gnome-system-tools paketini de kurabilirsiniz.

Gpicview, EPdfViewer, Transmission, Decibel Player, Parcellite gibi hafif uygulamaları tercih edebilirsiniz.


Topluluk

Bodhi Linux'un ayrı bir Türkçe topluluğu yok ancak dağıtım Ubuntu ailesinden olduğundan destek için http://www.ubuntu-tr.net/ adresini öneriyorum.



5 Ocak 2013

Posted In: Bodhi Linux, Enlightenment, linux, lkd_gezegen

Linux Journal 2012 Okuyucu Ödülleri

Her yıl Linux Journal tarafından yapılan ve GNU/Linux ve Özgür Yazılım dünyasının en iyilerinin okurları tarafından seçilen LJ Okuyucu Ödülleri sonuçları açıklandı. Bu yıl çok daha kapsamlı bir yelpazede okuyuculara sunulan anket içeriğinde bilinen ve beklenen sonuçların yanısıra hiç bilinmedik projelerin ortaya çıkması heyecan verici gelişmeler arasındaydı. Oldukça uzun bir liste ile GNU/Linux dünyasının EN’lerine...»

3 Ocak 2013

Posted In: 2012 ödülleri, en iyi linux, en iyiler, Linux Haberleri, linux journal, Linux Journal Okuyucu Ödülleri, okuyucu ödülleri

Twitter Auto Publish Powered By : XYZScripts.com