6
Nis
Ubuntu'nun Unity masaüstü ortamı ve Gnome projesinden Gnome 3, sıradan masaüstü ortamlarından çok daha farklı bir görünüm ve kullanım sunuyor. Bu değişiklikleri seven de var, yerin dibine geçiren de. Fark ettiğim bir durum ise, sevmeyenler (hatta nefret edenler) XFCE, LXDE gibi görece daha hafif ve daha geleneksel masaüstü ortamlarına yöneliyorlar.

KDE masaüstü ortamının 4.0 sürümüyle girdiği tartışmalı durumun tekrar yaşandığını görebiliriz. KDE 4 serisiyle çok köklü değişiklikler yapmıştı. KDE'nin 4.0 sürümü KDE API'sinin sonlandırılmasını ve artık uygulama geliştiricilerin KDE 4'e geçiş yapması gerektiğini ifade ediyordu. Bence yanlış olan bu sürümlendirme stratejisi, pek çok kişiyi ve dağıtımı KDE'nin en son sürümü olan 4.0'a geçmeye yönlendirdiği. Halbuki KDE -yaklaşık- 4.3 sürümüne kadar eski KDE 3'den özellik ve kararlılık bakımından geriydi. Bu dönemde KDE'yi deneyip eksik özelliklerden ve sık yaşanan çökmelerden ağzı yanan pek çok kişi oldu. Unity ve Gnome 3'ten uzaklaşanların KDE'yi bir seçenek olarak değerlendirmemelerinin sebebi, belki de bu kötü deneyim yüzündendir.

Ancak KDE'nin son bir kaç sürümü bu kötü ünü hiç haketmiyor. Gayet sağlam çalışıyor ve ayarlanabilirlik konusunda sınır tanımıyor. Size geleneksel görünümlü bir masaüstü sunarken, isterseniz çok farklı şekillere de bürünebiliyor. Unity'de uygulamaların yer aldığı çubuğu hareket ettirmek bile ek program kurulmasını gerektiriyorken, KDE'nin sunduğu özelleştirilebilirlik buharlı araba - jet uçağı ilişkisini andırıyor.

Örneğin Unity ve Gnome 3'te komut satırından ya da ek programlarla etkinleştirebileceğiniz "klasik" masaüstünü (masaüstünde bir klasör içeriğini göstermek), KDE'de masaüstünüze sağ tıklayıp ulaşabileceğiniz masaüstü ayarlarından "Layout: Folder View" seçeneğini seçerek elde edebiliyorsunuz. "Search and Launch" türündeki bir masaüstünde ise tüm masaüstünü bir uygulama başlatıcısı olarak kullanmanız mümkün. Her tür masaüstünde çeşitli programcıklar (widget) çalıştırıp, onu istediğiniz gibi özelleştirebiliyorsunuz.

"Activity" kavramı ise KDE'nin masaüstü ortamlarına getirdiği yeniliklerden biri. Çoklu masaüstü özelliğinin bir adım ilerisi olan Activity'ler, çalışan uygulamaları, masaüstü ve görünüm ayarlarıyla bilgisayardaki çalışmalarınızı kavramsal bölümlere ayırmanızı sağlıyor. İstediğiniz zaman çalışan programlarla birlikte bir activity'i kapatabiliyorsunuz. Kapalı bir activity ve içindeki programlar hiç kaynak harcamıyor. Activity tekrar çalıştırıldığında ise tüm ayarlarıyla masaüstü, ve activity içinde çalışan programlar tekrar yükleniyor. Hatta destekleyen uygulamalarda programın içindeki durum da kaydedilip tekrar yükleniyor. (Örneğin activity kapatıldığında gwenview resim yöneticisinde açık olan klasör, activity yeniden başlatıldığında hatırlanıyor) Activity kavramıyla ilgili iki ingilizce günlük girdisi burada ve burada.

KDE'yi tekrar denerseniz ilginizi çekecek bir özelliğini bulabilirsiniz. Belki görsel güzelliği, belki özelleştirilebilirliği. Ama 4 serisinin ilk sürümlerinden çok daha iyi olduğunu göreceksiniz.
19
Tem

Bu başlık sanki bilge-katalog’un yeni sürümü hazırmış gibi bir izlenim veriyor. Ama başlığın verdiği izlenim biraz hatalı. Birazdan uzunca açılayacağım neden hatalı olduğunu.

Eski yazılarımda bahsetmişimdir bilge-katalog’dan. Şimdi geri bağlantı vermekle uğraşmak istemiyorum. Bu yazılım benim arşivlerimdeki dosyalara ulaşmamı kolaylaştırmak için yazılmaya başlamıştı. 0.1 sürümü iş görür derecedeydi. Bu sürümdeki kod yazımımı beğenmediğim için baştan yazmaya karar vermiştim. Sıra o kararı uygulamaya geldi. 0.2 sürümü üzerinde çalışıyordum. Henüz 0.1 sürümünün tüm özelliklerine kavuşmamış olsa da yeni bazı özellikler getiriyordu.

0.2 sürümünü tamamlayamadığımdan yayınlayamadım. Neden tamamlayamadım? Sebep çok :D En büyük sebep okuldaki derslerin ağır basması. Okuldan geriye kalan zamanda da o zamanlar genelde kısa olduğu için kodlara girişmek istemedim.

Neyse tatile girince bolca vaktim olsa da 2 gün önce kodlara bakmaya başladım. Kodlara baktığımda gördüm ki bu yazılımın bir geleceği yok veya olsa da çok uğraştıracak bir gelecek olur. İşte bu yüzden yine baştan yazmaya karar verdim. Yeni bir yapıyı kullanacak şekilde yeni baştan yazmaya karar verdim.

Karar vermesine verdim de bu defa kendim aklıma geleni yazmayacağım. Çünkü kendi aklıma geleni daha uygulamanın yarısına gelmişken değiştiriyorum, uygulamanın bir kısmı boşa gidiyor. Bu defa yazmaya başlamadan önce bu yazıya yorum olarak veya benimle başka ortamlarda yazışarak söylediğiniz fikirlerin de üzerinde durarak bir yapı oluşturacağım.

Öncelikle size eski kullandığım yapıdan biraz bahsedeyim ki sizin aklınızda da bir şeyler canlansın. Bu yazılımın yaptığı iş şu:

  • Belirtilen dizindeki (/media/dvdrom gibi) tüm dizin ve dosya yapısının sadece isim ve bazı özelliklerini bu dosya ve dizin yapısıyla bir veritabanına ekliyor.
  • Daha sonra arama yapıldığında bir liste verip hangisinin hangi katalogda olduğunu söylüyor. Mesela: “mehter marşı” diye aratıyorum, yazılım “Müzikler 3 dvd’sinde” diyor. Hatta adresine kadar söylüyor(katalog://marşlar/mehter marşı/ gibi).
  • Aynı şekilde dvd’yi sanki bilgisayara takmış gibi dvd dizin ve dosya yapısında gezebiliyorsunuz.
  • Gereksiz gördüğünüz dosya, dizin ve kataloğu silebiliyorsunuz. (adı nokta ile başlayan gizli dosyaları silmek gibi)
  • Ayrıca kitap arşiviniz(kütüphaneniz demek daha hoş olurdu sanki) içinde bu yazılımı kullanabiliyorsunuz. Bunun için boş bir katalog oluşturup içine kitap eklemeniz yeterli. Hatta ödünç verme sistemi de eklemiştim.

Yazılımın önceki halinin yapabildiği işler bunlardı. Benim yeni oluşturacağım yapı biraz bu özellikler tamamlar ve biraz da lüzumsuz kısımları silecek şekilde olacak. Düşündüğüm bazı şeylerden bahsedeyim:

  • Ayrıntılı dosya özellikleri almak için eklenti yükleme şeklindeki bir yapıya geçmeyi düşünüyorum.
  • Yazılım kullanıcı tarafından fazlaca özelleştirilebilsin, hatta yazılım kullanıcıya muhtaç kalsın. Birçok şeyi kullanıcının yapmasını istesin. Bu birçok kullanıcının istemeyeceği bir şey ama kullanıcıyı aptal gibi düşünmekten iyidir.

Şimdilik aklıma gelenler bunlar. Sizin de bir şeyler katmanızı istiyorum. Bu yüzden bu konuda fikri, bilgisi, vs’si olan lütfen yorumla veya başka bir yöntemle bana ulaşıp fikrini bildirsin.

23
Haz

Yeni bir yazı ile karşınızdayız. Sanki 10 kişiyiz :D Yok sadece ben varım. Neyse bu yazının içeriği bir problem için ürettiğim çözümü içeriyor olacak. Teknik bilgi kısmına girme ihtimalim var. O yüzden sıkılınca bırakın. Hatta ilginizi çekmiyorsa boşa okumakla uğraşmayın :D

Problemden bahsetmeden önce bir giriş yapayım. Elif’te(bilgisayarımın adı) 2 ayrı linux dağıtımı kullanıyorum. Birisi Pardus 2011.1 diğeri Ubuntu 11.04. Bu iki dağıtım için de aynı sabit diski ev dizini olarak bağlıyorum. Ev dizinlerini ortak yaptığım için kullanıcı adlarının farklı olması gerekiyor ki kullanıcıların evlerindeki ayarlar birbirine girmesin.

İşte problem burada başlıyor. Ben internet ortamında “osmank3″ kullanıcı adıyla bilindiğim gibi bilgisayarımda da bu kullanıcı adını kullanmak taraftarıyım. Dağıtımlardan birisi bu ismi kullandığında diğerine başka bir isim vermem gerekiyor ayarlar karışmasın diye. İşte ben takıntılı birisi olduğum için bu durumdan rahatsız oluyorum. Kullanıcı adları aynı olsun, iki kullanıcı da aynı dizini kullansın istiyorken ayarların da karışmamasını istemek birazcık garip olsa gerek.

Bir önceki yazımda geçen 2 haftanın sonunda kendime yapacak bir iş bulamadım. Boş boş gezinmektense oturup bir betik yazayım da vakit geçsin dedim. Dün akşama doğru yazmaya başladım betiği. Arasıra ara versem de gece 3 gibi betiğin bir halta benzemediğini fark edip sabaha bıraktım. Sabah -aslında öğlen- kalkınca yazdım betiği.

Betik ne iş yapıyor? Betik kullanıcının ev dizinindeki adı nokta ile başlayan ayar dosyalarını dağıtım adına göre bir dizine taşıyor, kullanıcının ev dizininden taşınan dosyalara kısayol oluşturuyor. Bilgisayar her açılışında bu bağlantıları kuruyor, her kapanışta da yeni dosya eklenmişse onu taşıyıp bağlantıları kesiyor.

Betiğin ne iş yaptığından bahsettik. Şimdi biraz da kullanımından bahsedeyim. Aslında kullanımı çok basit. Betiğin adını linker.py koymuştum. Bağlantı kurmak için linker.py start bağlantı kesmek için de linker.py stop komutlarını vermek yeterli. Komutlardan da anlaşılacağı üzere sistem başlangıcına start olanı sistem kapanışına stop olanı eklemeniz betiği kullanabilmek için yeterli.

Betik içinde bir karaliste mevcut. Bu listeye eklenen dosya veya dizinler bu işlemlerde es geçilir. Bunun sebebini şöyle açıklayayım. Mesela Pardus’ta .pulse isimli dizin bağlantı olursa nedenini bilmesem de gelişmiş ses ayarları yapılamıyor, clementine sapıtabiliyor. O yüzden .pulse’yi kara listeye aldım. Benzer şekilde .gvfs dosyası da ubuntuda hata çıkartıyordu. O da karalistede. Bunlar benim test edip görebildiklerim. Betiği deneyip bana başka dosya ve dizin adı iletirseniz onları da eklerim.

Sistem başlangıcına nasıl ekleyeceğiz sorusunu duyar gibi oldum cevaplayayım. Öncelikle betiği indirip /bin veya /usr/bin dizini altına koyup çalıştırılabilir hale getirin (sudo chmod +x /usr/bin/linker.py). Pardus ve birçok dağıtımda /etc/conf.d/local.start ve /etc/conf.d/local.stop dosyaları mevcut. Betiği kullanmak için gerekli komutları bu iki dosyaya eklemeniz yeterli. Ubuntuda bu dosyaları bulamadım ama araştırmalarım sonucu bunlar gibi çalışan bir şey buldum. O şeyi bu bağlantıdan edinip ilgili eklemeleri yapabilirsiniz.

Çok önemli bir şeyden bahsetmem gerekiyor. Masaüstü oturumunuz açıkken bu betiği çalıştırmamanız kendi açınızdan çok iyi olacaktır. Sistem başlangıcı ve kapanışına koymanızı tavsiye etmemin sebebi yapılan işlemler sırasında veri kaybı olmaması için bu ayar dosyalarının kesinlikle kullanılyor olması gerekiyor.

Yazının sonuna gelirken betiğin bağlantısını vermeyi unuttuğumu fark ettim.

Buradan betiği indirebilir ve inceleyebilirsiniz.

Ha birde bu işi yapacak uygulama belki daha önceden yazılmıştır. Ama ben sıkıntıdan araştırmadım ve kendim yazayım dedim. Varsa böyle bir uygulama belki ondan da faydalanabilirim.

29
May

Bugüne kadar pardus’ta bluetooth cihazımı kde’nin yazılımıyla düzgünce kullandığımı hatırlamıyorum. Belki 2009 öncesinde kullanabilmiş olabilirim. Tam hatırlamıyorum ondan öncesini.

Böyle ilginç bir girişten sonra bu yazıyı  yazma sebebimden bahsetsem fena olmaz. Yaklaşık olarak pardus 2009 sürümünden beri bilgisayarımın vazgeçilmez uygulaması oldu blueman. Başka türlü bluetooth’u düzgünce kullanamıyorum. Blueman arayüz olarak gtk’yı kullandığından qt kullanan kde ile araları biraz limoni. Hani anlaşamadıklarından değil. Gtk kullanan blueman gnome taraftarı biraz :D

Neyse benim blueman yaklaşık bir aydır açılmıyordu. Hata kaydı açmıştım pardusta. Ama geliştiricisi ya çok meşgul ya da benim açtığım hata anlaşılmaz bir hata. Neyse benim hatanın çözümü /tmp dizinindeki blueman ile ilgili dosyaları silince çözüldü de hata kaydını da kapattım.

Blueman artık çalışıyor ama bir eksiği var. Blueman telefonumdaki dosyalarda gezinebilmem için obex ftp kullanması gereken komutu nautilus’a yönlendirmiş. Hani dedim ya blueman gnome taraftarı diye. Nautilus gnome’un dosya yöneticisi. Hah işe bu komutu dolphin’e yönlendirmek istiyorum ama bir türlü beceremedim. Bunun sebebi nautilus mac adresini “:”lı alırken dolphin “-”li alıyor. Blueman da gnome taraftarı ya mac adresini “:”lı veriyor. Dolphin’de o adresi açamıyor. Ne yaparım ne yaparım derken python betiği yazmaya karar verdim.

Ve işte benim betik:

#!/usr/bin/env python
#-*- coding:utf-8 -*-
import os, sys
argv = sys.argv
mac = argv[1].replace(":","-")

os.system("dolphin obexftp://%s"% mac)

Efendim bu betiği herhangi bir isimle /usr/bin veya /bin altında oluşturup çalıştırılabilir şekilde(755 bit kodu ile) yetkilendirmek gerekiyor. Ben blueman-obexftpkde ismiyle kaydettim ve çalıştırılabilir olarak ayarladım.

Bu işlemi yaptıktan sonra blueman’ın paneldeki simgesine sağ tıklayıp “Yerel Hizmetler…”e tıklattım ve Transfer sekmesindeki gelişmiş bölümünü açıp “blueman-obexftpkde %d” şeklinde başlatma komutunu değiştirdim. Artık blueman ile “Aygıt üzerindeki dosyalara gözat…” diyerek telefonumun içindeki dosyalarda gezinebiliyorum.

Blueman paketiyle ilgilenen pardus geliştiricisi daha uygun bir yama hazırlayana kadar bu beni idare eder. Sizi de idare etsin diye buraya yazayım dedim. Umarım kısa zamanda pardus geliştiricisi bir yama hazırlar bu konuda.

12
Eki

Epey bir süredir kataloglama üzerine bir yazılım ile uğraştığımı söylüyordum. Artık benim dışımda birilerinin de elleşeceği, kullanabileceği bir şeyler çıkardım ortaya. Elleşmekten kasıt kodları kurcalamak manasında :D

Nedir Bilge-Katalog? Basitçe bilge-katalog bir kataloglama uygulaması. Bu çok basit bir açıklama oldu. Tamam biraz genişletelim bu tanımı. Bilge-katalog isimli uygulama arşivcilerin işlerini kolaylaştırmak için yazılmış bir kataloglama uygulamasıdır. Ne gibi bir kolaylaştırma gibi sorularla cebelleşmek yerine ben size bilge-katalog’un ne yaptığından bahsedeyim sonraki paragrafta.

Bilge-katalog’a öncelikle arşivlerimizin içeriğini eklememiz gerekiyor. Mesela benim müzik arşivim birikmiş 11 dvd’ye sığacak kadar olmuş. Dvd’mizi bilgisayara takıp bilgisayara açıyoruz bilge-katalog’u. Katalog oluştur diyerek “Dizinden katalog oluşturma” seçeneği ile ikinci adıma geçiyoruz. Burada kataloğa isim verdikten sonra alt kısımdan dvd’nin bağlanma noktasını yazıyor veya “…” düğmesi ile buluyoruz. Sonraki adımda yaptığınız işlemlerin özetini görüyorsunuz. Özetten doğruluğu gördükten sonra ileri basıp beklemeniz gerekiyor. Buradaki bekleme süreci bilgisayarınızın gücüne ve dvd’nin içeriğine göre değişebilir. Ne oluyor bu adımda? Bilge-Katalog dvd’nin içeriğini dizin yapısıyla birlikte alıyor. İşlem bitince bu pencereyi kapatabilirsiniz.

Tamam verilerimizi katalogladık. Bu kısımdan sonra arşivlerinizde(dvd’lerinizde) arşiv ortamını bilgisayara bağlamadan gezebilir(dosya yöneticisi gibi), bazı dosyaların özelliklerini görebilirsiniz. Yukarıdaki arama kısmını kullanarak aradığınızı kolayca bulabilir, hangi arşivde, arşivin neresinde olduğuna dair bilgileri alabilirsiniz.

 

Ayrıca kitaplarınızı da bu uygulama ile kataloglayabilirsiniz. Şimdilik yapmadım ama ödünç verme ile ilgili bir şeyler eklemek gibi bir düşüncemde var. Buraya kadar herşey tamam. Bu yazılım şimdiki hali ile benim işimi görür hale geldi. Bu yazılımı kullanıp beğenirseniz ve eksiklerini-hatalarını bana bildirirseniz geliştirmekten mutluluk duyacağım. Eksik-hata bildirimi için [0] adresini kullanabilirsiniz.

Yahu Osman anlattın anlattın da biz bunu denemek için indirelim! İndirelim de nereden? İndirmek için [1] bağlantısına alalım sizi :D

Kurmak içinse arşivi açıp “python setup.py install” komutunu vermeniz yeterli.

***Aklıma gelmişken arşivi açtıktan sonra README dosyasında belirtilen bağımlılıkların sağlandığından emin olun!***

[0] : http://github.com/osmank3/bilge-katalog/issues
[1] : http://github.com/downloads/osmank3/bilge-katalog/bilge-katalog-0.1.tar.gz

Epey bir süredir kataloglama üzerine bir yazılım ile uğraştığımı söylüyordum. Artık benim dışımda birilerinin de elleşeceği, kullanabileceği bir şeyler çıkardım ortaya. Elleşmekten kasıt kodları kurcalamak manasında :D

Nedir Bilge-Katalog? Basitçe bilge-katalog bir kataloglama uygulaması. Bu çok basit bir açıklama oldu. Tamam biraz genişletelim bu tanımı. Bilge-katalog isimli uygulama arşivcilerin işlerini kolaylaştırmak için yazılmış bir kataloglama uygulamasıdır. Ne gibi bir kolaylaştırma gibi sorularla cebelleşmek yerine ben size bilge-katalog'un ne yaptığından bahsedeyim sonraki paragrafta.

Bilge-katalog'a öncelikle arşivlerimizin içeriğini eklememiz gerekiyor. Mesela benim müzik arşivim birikmiş 11 dvd'ye sığacak kadar olmuş. Dvd'mizi bilgisayara takıp bilgisayara açıyoruz bilge-katalog'u. Katalog oluştur diyerek "Dizinden katalog oluşturma" seçeneği ile ikinci adıma geçiyoruz. Burada kataloğa isim verdikten sonra alt kısımdan dvd'nin bağlanma noktasını yazıyor veya "..." düğmesi ile buluyoruz. Sonraki adımda yaptığınız işlemlerin özetini görüyorsunuz. Özetten doğruluğu gördükten sonra ileri basıp beklemeniz gerekiyor. Buradaki bekleme süreci bilgisayarınızın gücüne ve dvd'nin içeriğine göre değişebilir. Ne oluyor bu adımda? Bilge-Katalog dvd'nin içeriğini dizin yapısıyla birlikte alıyor. İşlem bitince bu pencereyi kapatabilirsiniz.

Tamam verilerimizi katalogladık. Bu kısımdan sonra arşivlerinizde(dvd'lerinizde) arşiv ortamını bilgisayara bağlamadan gezebilir(dosya yöneticisi gibi), bazı dosyaların özelliklerini görebilirsiniz. Yukarıdaki arama kısmını kullanarak aradığınızı kolayca bulabilir, hangi arşivde, arşivin neresinde olduğuna dair bilgileri alabilirsiniz.
 
Ayrıca kitaplarınızı da bu uygulama ile kataloglayabilirsiniz. Şimdilik yapmadım ama ödünç verme ile ilgili bir şeyler eklemek gibi bir düşüncemde var. Buraya kadar herşey tamam. Bu yazılım şimdiki hali ile benim işimi görür hale geldi. Bu yazılımı kullanıp beğenirseniz ve eksiklerini-hatalarını bana bildirirseniz geliştirmekten mutluluk duyacağım. Eksik-hata bildirimi için [0] adresini kullanabilirsiniz.

Yahu Osman anlattın anlattın da biz bunu denemek için indirelim! İndirelim de nereden? İndirmek için [1] bağlantısına alalım sizi :D

Kurmak içinse arşivi açıp "python setup.py install" komutunu vermeniz yeterli.

***Aklıma gelmişken arşivi açtıktan sonra README dosyasında belirtilen bağımlılıkların sağlandığından emin olun!***

[0] : http://github.com/osmank3/bilge-katalog/issues
[1] : http://github.com/downloads/osmank3/bilge-katalog/bilge-katalog-0.1.tar.gz
8
Ağu

Bu konuda yazmak nereden aklıma geldi şimdi? Aşağıdaki senaryo bu yazıyı yazmamı gerektirdi. Buyurun okuyun.

Ubuntuda başlangıç diski oluşturduk, Oluştururken ayarları kaydetmesi için yer de ayırdık. Buraya kadar her şey normal fakat usb diskimize kurduğumuz ubuntu öyle hoşumuza gitti ki ayırdığımız alanı artırmak istedik! Şimdi burada ilk düşünülebilecek yöntem usb diski tekrar oluşturmaktır ki ilk olarak ben öyle yapmıştım. Ama aslında çok daha kolay bir yöntemin varlığını fark ettim.

Usb diskiniz ile cd arasındaki farklılığa ve usb diskinizdeki dosyaların kullandıkları alanlara bakacak olursanız ayarlar için ayırdığınız kısmın casper-rw isimli bir dosyada saklandığını görebilirsiniz. İşte bizim bu dosyanın boyutunu değiştirmemiz(artırmamız) gerekiyor.

Bu dosya aslında bir disk kalıbıdır. Disk kalıbı da neyin nesi? Disk kalıbını verilerinizi saklayabileceğiniz bir disk bölümü olarak düşünebilirsiniz. Normal disk bölümünden tek farkı fiziksel bir donanım olmayışı.

Şimdi ben ilk olarak disk kalıbı nasıl oluşturuluru anlatıp sonra da nasıl boyutunun artırılabileceğinden bahsedeyim. Niye yahu geçsene boyutlandırmaya! Yok biraz heyecanlı olsun :D Merak edin canım.

Disk kalıbı oluşturma

Gelelim disk kalıbı oluşturmaya. Konsol(terminal, uçbirim) ile tanışıksınızdır umarım. Öncelikle disk kalıbımız için dosya oluşturmakla işe başlayalım:

dd if=/dev/zero of=kalıpdosyanız bs=1M count=1024

İlk komutumuz bize 1024 mb boyutunda içi 0′larla dolu(yani boş) kalıpdosyanız isminde bir dosya oluşturdu. Şimdi bu dosyayı kullanılabilir bir disk kalıbı haline getirme işlemine geldi. Hemen sıradaki komutumuza geçiyoruz:

mkfs.ext3 -F kalıpdosyanız

Bu komut sayesinde kalıpdosyanız isimli dosya ext3 biçimiyle biçimlenmiş bir disk kalıbı haline geldi.

Kalıbı genişletme

Şimdi bu dosyanın boyutunu artırmaya geldi. İşte merak edilen kısım oluyor burası. Bize casper-rw’nin boyutu az gelmişti. Şimdi önceki örneğimizden devam ederek kalıbın boyutunu artıralım. Yalnız önemli bir noktaya baskı yapmam gerekiyor. Her türlü veri kaybına karşı bu dosyanın bir yedeğiyle çalışmanızı tavsiye ederim. Komutlara devam ediyoruz:

dd if=/dev/zero bs=1M count=1024 >> kalıpdosyanız

Bu komutla kalıpdosyanız isimli dosyanın sonuna 1024 mb boyutunda 0′larla dolu(yani boş) veri giriliyor. Şimdi kalıbımıza boyutunun artırıldığını bildirmemiz gerekiyor. Hemen sıradaki komuta geçelim:

e2fsck -f kalıpdosyanız
resize2fs kalıpdosyanız

Bu komutları verdiğinizde kalıpdosyanız isimli kalıbımız önce hatalara karşı kontrol edilip yeni boyutundan haberdar oluyor. Bu komutlar ile birlikte artık kalıbımızın boyutunu genişlettik.

Yahu iyi, güzel, âlâ, hoş da biz bu kalıp dosyasını nasıl kullanacağız dediğinizi duyar gibiyim(bende de ne kulak var ama :D ). Birazda bu diski nasıl kullanacağımızdan bahsedelim. Linuxta kullanılacak bölümler bağlanmalıdır. Hemen bağlamaktan bahsedelim:

Kalıp dosyasının bağlanması

Evet komutlar vermeye devam edeceğiz. İlk olarak kalıbı bağlamak için boş bir dizin oluşturmalıyız:

mkdir bağlamanoktası

bağlamanoktası ismiyle yeni bir dizin oluşturduk. Bu dizine bağlama işlemini yapabiliriz artık. Bu da komutumuz:

sudo mount -o loop kalıpdosyanız bağlamanoktası

Bu komut sayesinde kalıpdosyanız isimli disk kalıbının içeriğini bağlamanoktası dizini içinde görebilir ve değiştirebilirsiniz. Fark ettiyseniz bu komutta sudo’yu kullandık. Bundan da anlayacağınız üzere bağlama işini root olarak yapmamız gerekiyor. İşiniz bittiğinde ayırmak için ise aşağıdaki komutu vermeniz yeterli:

sudo umount bağlamanoktası

Bu komutu vererek kalıbı ayırdığımıza göre tüm işlemleri bitirmişiz demektir.

Yazının sonuna gelirken aklıma bir soru takıldı. Biz kalıbın boyunu artırdık da azaltmak hakkında bir şey yazmadık. Muhtemelen boyutu azaltma kısmında veri kaybı olabileceği için yeni bir kalıp oluşturup eskisinin içindekileri koplayalamak daha sağlıklı olacaktır.

Ha unutmadan, burada casper-rw demiştik değil mi? kalıpdosyanız ismiyle gördüğünüz yerlere casper-rw yazmanız yeterli :D

İlham kaynağımı merak edenler: Buradan alalım sizi :D

Bu konuda yazmak nereden aklıma geldi şimdi? Aşağıdaki senaryo bu yazıyı yazmamı gerektirdi. Buyurun okuyun.

Ubuntuda başlangıç diski oluşturduk, Oluştururken ayarları kaydetmesi için yer de ayırdık. Buraya kadar her şey normal fakat usb diskimize kurduğumuz ubuntu öyle hoşumuza gitti ki ayırdığımız alanı artırmak istedik! Şimdi burada ilk düşünülebilecek yöntem usb diski tekrar oluşturmaktır ki ilk olarak ben öyle yapmıştım. Ama aslında çok daha kolay bir yöntemin varlığını fark ettim.

Usb diskiniz ile cd arasındaki farklılığa ve usb diskinizdeki dosyaların kullandıkları alanlara bakacak olursanız ayarlar için ayırdığınız kısmın casper-rw isimli bir dosyada saklandığını görebilirsiniz. İşte bizim bu dosyanın boyutunu değiştirmemiz(artırmamız) gerekiyor.

Bu dosya aslında bir disk kalıbıdır. Disk kalıbı da neyin nesi? Disk kalıbını verilerinizi saklayabileceğiniz bir disk bölümü olarak düşünebilirsiniz. Normal disk bölümünden tek farkı fiziksel bir donanım olmayışı.

Şimdi ben ilk olarak disk kalıbı nasıl oluşturuluru anlatıp sonra da nasıl boyutunun artırılabileceğinden bahsedeyim. Niye yahu geçsene boyutlandırmaya! Yok biraz heyecanlı olsun :D Merak edin canım.

Disk kalıbı oluşturma

Gelelim disk kalıbı oluşturmaya. Konsol(terminal, uçbirim) ile tanışıksınızdır umarım. Öncelikle disk kalıbımız için dosya oluşturmakla işe başlayalım:

dd if=/dev/zero of=kalıpdosyanız bs=1M count=1024

İlk komutumuz bize 1024 mb boyutunda içi 0'larla dolu(yani boş) kalıpdosyanız isminde bir dosya oluşturdu. Şimdi bu dosyayı kullanılabilir bir disk kalıbı haline getirme işlemine geldi. Hemen sıradaki komutumuza geçiyoruz:

mkfs.ext3 -F kalıpdosyanız

Bu komut sayesinde kalıpdosyanız isimli dosya ext3 biçimiyle biçimlenmiş bir disk kalıbı haline geldi.

Kalıbı genişletme

Şimdi bu dosyanın boyutunu artırmaya geldi. İşte merak edilen kısım oluyor burası. Bize casper-rw'nin boyutu az gelmişti. Şimdi önceki örneğimizden devam ederek kalıbın boyutunu artıralım. Yalnız önemli bir noktaya baskı yapmam gerekiyor. Her türlü veri kaybına karşı bu dosyanın bir yedeğiyle çalışmanızı tavsiye ederim. Komutlara devam ediyoruz:

dd if=/dev/zero bs=1M count=1024 >> kalıpdosyanız

Bu komutla kalıpdosyanız isimli dosyanın sonuna 1024 mb boyutunda 0'larla dolu(yani boş) veri giriliyor. Şimdi kalıbımıza boyutunun artırıldığını bildirmemiz gerekiyor. Hemen sıradaki komuta geçelim:

e2fsck -f kalıpdosyanız
resize2fs kalıpdosyanız

Bu komutları verdiğinizde kalıpdosyanız isimli kalıbımız önce hatalara karşı kontrol edilip yeni boyutundan haberdar oluyor. Bu komutlar ile birlikte artık kalıbımızın boyutunu genişlettik.

Yahu iyi, güzel, âlâ, hoş da biz bu kalıp dosyasını nasıl kullanacağız dediğinizi duyar gibiyim(bende de ne kulak var ama :D). Birazda bu diski nasıl kullanacağımızdan bahsedelim. Linuxta kullanılacak bölümler bağlanmalıdır. Hemen bağlamaktan bahsedelim:

Kalıp dosyasının bağlanması

Evet komutlar vermeye devam edeceğiz. İlk olarak kalıbı bağlamak için boş bir dizin oluşturmalıyız:

mkdir bağlamanoktası

bağlamanoktası ismiyle yeni bir dizin oluşturduk. Bu dizine bağlama işlemini yapabiliriz artık. Bu da komutumuz:

sudo mount -o loop kalıpdosyanız bağlamanoktası

Bu komut sayesinde kalıpdosyanız isimli disk kalıbının içeriğini bağlamanoktası dizini içinde görebilir ve değiştirebilirsiniz. Fark ettiyseniz bu komutta sudo'yu kullandık. Bundan da anlayacağınız üzere bağlama işini root olarak yapmamız gerekiyor. İşiniz bittiğinde ayırmak için ise aşağıdaki komutu vermeniz yeterli:

sudo umount bağlamanoktası

Bu komutu vererek kalıbı ayırdığımıza göre tüm işlemleri bitirmişiz demektir.

Yazının sonuna gelirken aklıma bir soru takıldı. Biz kalıbın boyunu artırdık da azaltmak hakkında bir şey yazmadık. Muhtemelen boyutu azaltma kısmında veri kaybı olabileceği için yeni bir kalıp oluşturup eskisinin içindekileri koplayalamak daha sağlıklı olacaktır.

Ha unutmadan, burada casper-rw demiştik değil mi? kalıpdosyanız ismiyle gördüğünüz yerlere casper-rw yazmanız yeterli :D

İlham kaynağımı merak edenler: Buradan alalım sizi :D
6
Mar
Beta sürümünün çıkmasından epeyce sonra nihayet kararlı sürümüne geçiş yapabildik Kontrolcu'nun. Beta ile kararlı sürüm arasında ne fark var acaba diye şöyle bir bakalım.

  • Yeni bir logo hazırlandı.
  • Windows ortamındaki dil problemi çözüldü.
  • Kaynak koddan kurulum betiği windows ve mac'te de çalışacak şekle düzenlendi.
  • Windows için tut-çek-bırak özelliği pasif hale getirildi(Siliyormuş dosyayı hiç denemedim :D).
  • Dil dosyaları güncellendi(Çevirmenlerimize teşekkür ediyoruz).
  • İngilizce bir kullanma kılavuzu hazırlandı(Türkçesini de bir ara hazırlarız. Hazırlamak isteyen olursa da yok demeyiz :D).

İşte bu yenilikleri(!) getiriyor kararlı sürüm. Kararlı sürümün bir resmini de koyalım.



Resimde de gördüğünüz gibi arayüzde sadece simge değişikliği var. Yeni simgemizi hazırlayan Cemalettin Kara'ya çok teşekkür ediyoruz. Windows kullananlar için biraz daha fazlası var aslında. Örneğin türkçe olarak kullanabilecekler artık :D

Windows'ta kurmaya gerek yok. Windows için olan arşivi indirin ve açın. İçindeki kontrolcu.exe'yi açın ve kullanın :D

Pardus'ta kurmak içinse şimdilik benim hazırladığım inşa dosyalarını kullanabilirsiniz. Konsolu açın ve sırası ile komutları verin.

sudo pisi build http://kontrolcu.googlecode.com/svn/packages/linux/pisi/pspec.xml

sudo pisi it kontrolcu*.pisi


Bu komutları girdikten sonra kontrolcu pardus'unuza kurulmuş olacaktır. Menüden kontrolcu'ya ulaşabileceğiniz gibi konsoldan da kullanabilirsiniz. Deyince aklıma geldi! Sanırım konsol kullanım belgesini yazmayı yine unuttuk. Neyse zamanla onu da yazarız :D

Ha birde mac için kurulum dosyası falan var ama benim mac'im yok o konuda birşey diyemiyorum.

Bütün indirme dosyalarına buradan ulaşabilirsiniz

Beta sürümünün çıkmasından epeyce sonra nihayet kararlı sürümüne geçiş yapabildik Kontrolcu‘nun. Beta ile kararlı sürüm arasında ne fark var acaba diye şöyle bir bakalım.

  • Yeni bir logo hazırlandı.
  • Windows ortamındaki dil problemi çözüldü.
  • Kaynak koddan kurulum betiği windows ve mac’te de çalışacak şekle düzenlendi.
  • Windows için tut-çek-bırak özelliği pasif hale getirildi(Siliyormuş dosyayı hiç denemedim :D ).
  • Dil dosyaları güncellendi(Çevirmenlerimize teşekkür ediyoruz).
  • İngilizce bir kullanma kılavuzu hazırlandı(Türkçesini de bir ara hazırlarız. Hazırlamak isteyen olursa da yok demeyiz :D ).

İşte bu yenilikleri(!) getiriyor kararlı sürüm. Kararlı sürümün bir resmini de koyalım.

Resimde de gördüğünüz gibi arayüzde sadece simge değişikliği var. Yeni simgemizi hazırlayan Cemalettin Kara‘ya çok teşekkür ediyoruz. Windows kullananlar için biraz daha fazlası var aslında. Örneğin türkçe olarak kullanabilecekler artık :D

Windows’ta kurmaya gerek yok. Windows için olan arşivi indirin ve açın. İçindeki kontrolcu.exe’yi açın ve kullanın :D

Pardus’ta kurmak içinse şimdilik benim hazırladığım inşa dosyalarını kullanabilirsiniz. Konsolu açın ve sırası ile komutları verin.

sudo pisi build http://kontrolcu.googlecode.com/svn/packages/linux/pisi/pspec.xml

sudo pisi it kontrolcu*.pisi

Bu komutları girdikten sonra kontrolcu pardus’unuza kurulmuş olacaktır. Menüden kontrolcu’ya ulaşabileceğiniz gibi konsoldan da kullanabilirsiniz. Deyince aklıma geldi! Sanırım konsol kullanım belgesini yazmayı yine unuttuk. Neyse zamanla onu da yazarız :D

Ha birde mac için kurulum dosyası falan var ama benim mac’im yok o konuda birşey diyemiyorum.

Bütün indirme dosyalarına buradan ulaşabilirsiniz

21
Ara
Kontrolcu alfa sürümü çıktığından bugüne 21 gün geçmiş. Bu 21 gün içinde benim vizelerim Doğan'ın sınavları ve bilimum olaylar geçti.

Beta ile gelen yenilikler neler?

* Alfa'da bulunan ilerleme çubuğunda ki özet sonuçları hatası giderildi.
* Yeni çeviriler geldi.
* İlerleme çubuğu bütün sekmeler de çalışır hale getirildi.
* Ascii dışı karakterler sorunu ile yüzleşildi ve az da olsa bu sorun giderildi
* Dizinleri tut çek bırak yaptığınızda listeye dizin içindeki dosyalar alınacak şekilde düzenlendi.
* Uygulama simgesi değiştirildi

Aklıma gelenler bunlar. Bunlardan bizi en çok uğraştıranlar sadece 1-3 satırda çözülen ilerleme çubuğu hatası ve ascii dışı karakter sorunları oldu.

Ascii problemi için 3 gün düşündüm, araştırdım, bunaldım ve doğan tarafından çözüm geldi.

İlerleme çubuğu problemi ise başlı başına bir gariplikti. Alfa'dayken farkına varmadığımız bir hata! Çözümü oldukça basit ama görmesi biraz zordu :D Doğan'ı çıldırtan hatta projeyi bırakma kararına kadar yaklaştıran bir görüş zorluğu :D Neyse o sorunu hallettik. Ama o sorunu düzgünce vaktinde görmüş olsaydık beta'yı dün çıkarabilirdik.

Dosyadan kontrol sekmesi ile pek uğraşmadığım, uğraşmak istemediğim mainqt.py dosyası ile uğraşmam gerekti.

Bir de logomuzu değiştirdik. Alfa sürümünde iken eski simgenin çirkin görünmesi gözüme batıyordu. Yeni bir simge yaptık. Kontrolcu 2.0 tam sürümü çıktığında simgemizi yine değiştirmiş olabiliriz. Aklımızda yeni bir simge oluştu ama bakalım hangi simge daha güzel görünecek gözümüze.



Evet bir yazının daha sonuna gelirken yazılımımızı kullanmanızı ve bulduğunuz hatalar buradan bize bildirmenizi dileriz

Kontrolcu alfa sürümü çıktığından bugüne 21 gün geçmiş. Bu 21 gün içinde benim vizelerim Doğan‘ın sınavları ve bilimum olaylar geçti.

Beta ile gelen yenilikler neler?

* Alfa’da bulunan ilerleme çubuğunda ki özet sonuçları hatası giderildi.
* Yeni çeviriler geldi.
* İlerleme çubuğu bütün sekmeler de çalışır hale getirildi.
* Ascii dışı karakterler sorunu ile yüzleşildi ve az da olsa bu sorun giderildi
* Dizinleri tut çek bırak yaptığınızda listeye dizin içindeki dosyalar alınacak şekilde düzenlendi.
* Uygulama simgesi değiştirildi

Aklıma gelenler bunlar. Bunlardan bizi en çok uğraştıranlar sadece 1-3 satırda çözülen ilerleme çubuğu hatası ve ascii dışı karakter sorunları oldu.

Ascii problemi için 3 gün düşündüm, araştırdım, bunaldım ve doğan tarafından çözüm geldi.

İlerleme çubuğu problemi ise başlı başına bir gariplikti. Alfa’dayken farkına varmadığımız bir hata! Çözümü oldukça basit ama görmesi biraz zordu :D Doğan’ı çıldırtan hatta projeyi bırakma kararına kadar yaklaştıran bir görüş zorluğu :D Neyse o sorunu hallettik. Ama o sorunu düzgünce vaktinde görmüş olsaydık beta’yı dün çıkarabilirdik.

Dosyadan kontrol sekmesi ile pek uğraşmadığım, uğraşmak istemediğim mainqt.py dosyası ile uğraşmam gerekti.

Bir de logomuzu değiştirdik. Alfa sürümünde iken eski simgenin çirkin görünmesi gözüme batıyordu. Yeni bir simge yaptık. Kontrolcu 2.0 tam sürümü çıktığında simgemizi yine değiştirmiş olabiliriz. Aklımızda yeni bir simge oluştu ama bakalım hangi simge daha güzel görünecek gözümüze.

Evet bir yazının daha sonuna gelirken yazılımımızı kullanmanızı ve bulduğunuz hatalar buradan bize bildirmenizi dileriz

Özgür Yazılım Sohbetleri'nin ilki, 26 Aralık 2009 Cumartesi 13:30'da Beşiktaş Çıtır Cafe'de yapılacak. Çıtır Cafe, Barbaros Bulvarı ve Hasfırın Caddesi'nin kesiştiği yerde.

Facebook etkinlik sayfası burada.

19
Ara

Ayda bir toplanalım, özgür yazılım konuşalım. Var mısınız?

Ek: Konuları önceden planlanmamış, belki içeriği diğer şehirlerden kalkıp gelmenize değmeyecek, sıradan arkadaş toplantıları tadında olacak bu ÖY sohbetleri.

Sürekli aynı şehirde, aynı mekanda da olmayacak bu sohbetler. İstanbul/Ankara'da her ay düzenli yapılacak muhtemelen bu sohbetler, ama ara sıra otobüse atlayıp Çanakkale'ye, İzmir'e, Burdur'a (Gökçen, bu senin için) gidelim diyeceğiz. Belki de başkaları organize edecek bu tür sohbetleri, kendimizi bir hafta sonu farklı diyarlarda bulacağız.

Ek 2: Ankara Öİ ekibi yapıyordu bu tür etkinlikler, katılamadığım için üzülüyordum. Fikir sizden çıktı, herkese selamlar.

14
Ara

Pardus'un hata takip sistemini kullandıysanız, hata arama sayfalarının tepesindeki nükteleri (quips) farketmişsinizdir.

Bugzilla Quips
  • Yazdığım kodda hata yok, hatalı olan GCC.
  • Bugün API kıran yarın kalp de kırar...
  • Kötü laptop yoktur, backport edilmemiş patch vardır.
  • Butonun etiketini psmillah yaptım, takdir-i ilahi'den seed ediyor.
  • Yani bir hata çıkmışsa bir hata vardır.
  • Firefox'un yumuşak kaydırmasını kapatınca traktör ile aşşağı yukarı kaydırmada duraksamalı çalışması düzeldi.
  • Seni sürüm yöneticisine söylicem, sürüm sürüm süründürücem.

gibi efsanevi açıklamalar, sağda solda duyulup akla kazınan cümlelerdir bunlar. Hepsinin bir hikayesi vardır, ve çoğu ayrı bir blog girdisi olmayı hak eden hikayelerdir.

30
Kas
Python'u öğrenmeye başladığımdan beri nedendir bilmiyorum md5 şifreleme algoritması ilgimi çekiyordu. İlk olarak cep telefonumda pys60-kontrolcu projeme başlamıştım. Sonralarda ise symbian dışında da python'u kullanmak istedim. İlk olarak symbian'da python'u öğrenme sebebim python'u sürekli yanımda gezdirebiliyor olmamdı. Asıl hedefim linux'ta yazmaktı.

Bir gün benim gibi python'la yeni haşır neşir olan birine rastladım. IRC'de #pardus kanalında tdgunes takma adlı biri tıpkı benim gibi bu şifreleme algoritmalarına takmış durumdaydı. Taha Doğan Güneş daha o zaman bir projeye başlamayı düşündüğünü söyledi. Ben de onunla aynı fikirde olduğumu söyledim ve google-code'da md5kontrolcu isminde bir proje başlattık. SVN kullanmayı bu proje sayesinde öğrendim diyebilirim. Ha SVN'i hâlâ tam manasıyla kullanamıyorum orası ayrı :D Neyse python ve kontrol özetleri bir araya gelince hashlib kütüphanesini kullanmaktan daha doğal bir şey olamaz. Biz konsol Tkinter Qt falan uğraşırken hashlib'deki sha1 ve kardeşleri de ilgimizi çekti ve projenin adını md5kontrolcu'dan kontrolcu'ya değiştirdik. 1.x li sürümlere geldik sürekli gelişerek. Elimizde konsol ve 2 farklı arayüz (Qt ve Tkinter) vardı o zamanlar. Tkinter'i yapma sebebim Xfce gibi hafif bir masaüstünü Qt gibi bir arayüzle kirletmenin kötü olacağı düşüncesiydi. Tamam Tkinter hafif ama bir o kadar da çirkin bir görünüme sahip.

Neyse biz 1.0, 1.5, 1.6 derken proje içinden çıkılamaz bir hal almaya başladı. Bazı yapıları daha işlevsel hale getirmeye çalışırken anlaşılması zor yapılar oluşmaya başlamıştı. 1.7 sürümüyle epey hata giderilecekti ama yapı öyle karışmıştı ki anlayamıyorduk. Kodu yazıyorduk çalışıyordu ama koda daha sonra baktığımızda yahu bu nasıl çalışıyor deyip kalıyorduk! Proje bu yüzden bir duraklama durumuna girmişti.

Bir gün içimde bir kıvılcım oluştu. Bu kıvılcımın sebebi kütüphaneden aldığım "Nesneye yönelik programlama: C++" kitabındaki nesne mantığını az da olsa anlamış olmamdı. Kontrolcu 1.x'li sürümlerde çok fazla listeler sözlükler ortalığı karıştırıyordu. Ama nesneler ile bu karışıklığı gidermekte hiç zorlanmayacaktık. Taha Doğan'la anlaştık. 2.0'ı baştan -0'dan- yazalım dedik. 1.x'leri acemiliğimize verip unutalım adamakıllıca oturup baştan yazalım dedik. Başladık baştan yazmaya. Taha Doğan yenilenmiş Qt arayüzü yazmakla meşgul olurken ben de arkada çalışacak yapıları oluşturmaya başladım. Nesne yapısı ile gerçekten mükemmel bir anlaşılabilirliğe ve hıza kavuştuk. Ha bir de yeniden yazmaya başlayınca henüz yapı çok karışmadan dil desteği de ekleyelim dedik ve kontrolcu'nun anadilini İngilizce yaptık ki çevrilebilsin ve dünyaca anlaşılabilsin. Bana kalsa Türkçe yapardım ama Türkçe yapınca tanıtamıyorum ve tanınmadan kalıyor projelerim! Neyse dil desteği getirdik ve ilk olarak (Türkçe ve İngilizce dışında) İtalyanca çeviriyi elimize aldık. İtalyanca çeviriyi yapan Mirsda Hoxha isimli arkadaşa teşekkür ediyorum ama o muhtemelen bu teşekkürü görmeyecektir :D Ek: Bu yazıyı yazdığım sırada ispanyolca çeviri gelmiş :D Ona da teşekkür ediyoruz :D

Taha Doğan Windows için de bir arşiv oluşturduktan sonra 2.0-alfa sürümünü yayınladık. Bu yazıyı okuyanlar belki bize yardımda bulunmak isterler. İşte o kimselerden şöyle bir yardımda bulunmalarını istiyorum. Yazılımı kullanın, beğenmediğiniz yerleri olsun hataları olsun bize buradan bildirin. Böylece bizim göremediğimiz hatalar olabilir onları da çözmüş oluruz.

Yahu anlatıp duruyorum da bu yazılım ne iş yapıyor?

Kontrolcu; md5, sha1, sha224, sha256, sha384, sha512 tek yönlü şifreleme algoritmalarını kullanabilen, Bu yöntemlerle dosyalarınızın kontrol özetlerini öğrenebileceğiniz, kaydedebileceğiniz ya da hazır kaydedilmiş olanlardan kontrol edebileceğiniz, python ile yazılmış bir yazılımdır.

Örnek vermek gerekirse: Pardus disk kalıbını(iso) indirdiniz. Peki ama bu disk kalıbı doğru mu indi yoksa hatalı mı indi merak ediyorsunuz. Disk kalıbını indirdiğiniz yerde sha1sum ya da md5sum gibi anlamsız harf ve rakamlardan oluşan bir kontrol özeti var. İşte bu yazılımı kullanarak o kontrol özeti ve disk kalıbından oluşturulacak kontrol özetlerini karşılaştırıp disk kalıbının doğru inip inmediği hakkında bilgi sahibi oluyorsunuz :D

Neyse Qt arayüzden bir resim koyayım da gözümüz günlümüz şenlensin değil mi :D

Python’u öğrenmeye başladığımdan beri nedendir bilmiyorum md5 şifreleme algoritması ilgimi çekiyordu. İlk olarak cep telefonumda pys60-kontrolcu projeme başlamıştım. Sonralarda ise symbian dışında da python’u kullanmak istedim. İlk olarak symbian’da python’u öğrenme sebebim python’u sürekli yanımda gezdirebiliyor olmamdı. Asıl hedefim linux’ta yazmaktı.

Bir gün benim gibi python’la yeni haşır neşir olan birine rastladım. IRC’de #pardus kanalında tdgunes takma adlı biri tıpkı benim gibi bu şifreleme algoritmalarına takmış durumdaydı. Taha Doğan Güneş daha o zaman bir projeye başlamayı düşündüğünü söyledi. Ben de onunla aynı fikirde olduğumu söyledim ve google-code’da md5kontrolcu isminde bir proje başlattık. SVN kullanmayı bu proje sayesinde öğrendim diyebilirim. Ha SVN’i hâlâ tam manasıyla kullanamıyorum orası ayrı :D Neyse python ve kontrol özetleri bir araya gelince hashlib kütüphanesini kullanmaktan daha doğal bir şey olamaz. Biz konsol Tkinter Qt falan uğraşırken hashlib’deki sha1 ve kardeşleri de ilgimizi çekti ve projenin adını md5kontrolcu’dan kontrolcu‘ya değiştirdik. 1.x li sürümlere geldik sürekli gelişerek. Elimizde konsol ve 2 farklı arayüz (Qt ve Tkinter) vardı o zamanlar. Tkinter’i yapma sebebim Xfce gibi hafif bir masaüstünü Qt gibi bir arayüzle kirletmenin kötü olacağı düşüncesiydi. Tamam Tkinter hafif ama bir o kadar da çirkin bir görünüme sahip.

Neyse biz 1.0, 1.5, 1.6 derken proje içinden çıkılamaz bir hal almaya başladı. Bazı yapıları daha işlevsel hale getirmeye çalışırken anlaşılması zor yapılar oluşmaya başlamıştı. 1.7 sürümüyle epey hata giderilecekti ama yapı öyle karışmıştı ki anlayamıyorduk. Kodu yazıyorduk çalışıyordu ama koda daha sonra baktığımızda yahu bu nasıl çalışıyor deyip kalıyorduk! Proje bu yüzden bir duraklama durumuna girmişti.

Bir gün içimde bir kıvılcım oluştu. Bu kıvılcımın sebebi kütüphaneden aldığım “Nesneye yönelik programlama: C++” kitabındaki nesne mantığını az da olsa anlamış olmamdı. Kontrolcu 1.x’li sürümlerde çok fazla listeler sözlükler ortalığı karıştırıyordu. Ama nesneler ile bu karışıklığı gidermekte hiç zorlanmayacaktık. Taha Doğan’la anlaştık. 2.0′ı baştan -0′dan- yazalım dedik. 1.x’leri acemiliğimize verip unutalım adamakıllıca oturup baştan yazalım dedik. Başladık baştan yazmaya. Taha Doğan yenilenmiş Qt arayüzü yazmakla meşgul olurken ben de arkada çalışacak yapıları oluşturmaya başladım. Nesne yapısı ile gerçekten mükemmel bir anlaşılabilirliğe ve hıza kavuştuk. Ha bir de yeniden yazmaya başlayınca henüz yapı çok karışmadan dil desteği de ekleyelim dedik ve kontrolcu’nun anadilini İngilizce yaptık ki çevrilebilsin ve dünyaca anlaşılabilsin. Bana kalsa Türkçe yapardım ama Türkçe yapınca tanıtamıyorum ve tanınmadan kalıyor projelerim! Neyse dil desteği getirdik ve ilk olarak (Türkçe ve İngilizce dışında) İtalyanca çeviriyi elimize aldık. İtalyanca çeviriyi yapan Mirsda Hoxha isimli arkadaşa teşekkür ediyorum ama o muhtemelen bu teşekkürü görmeyecektir :D Ek: Bu yazıyı yazdığım sırada ispanyolca çeviri gelmiş :D Ona da teşekkür ediyoruz :D

Taha Doğan Windows için de bir arşiv oluşturduktan sonra 2.0-alfa sürümünü yayınladık. Bu yazıyı okuyanlar belki bize yardımda bulunmak isterler. İşte o kimselerden şöyle bir yardımda bulunmalarını istiyorum. Yazılımı kullanın, beğenmediğiniz yerleri olsun hataları olsun bize buradan bildirin. Böylece bizim göremediğimiz hatalar olabilir onları da çözmüş oluruz.

Yahu anlatıp duruyorum da bu yazılım ne iş yapıyor?

Kontrolcu; md5, sha1, sha224, sha256, sha384, sha512 tek yönlü şifreleme algoritmalarını kullanabilen, Bu yöntemlerle dosyalarınızın kontrol özetlerini öğrenebileceğiniz, kaydedebileceğiniz ya da hazır kaydedilmiş olanlardan kontrol edebileceğiniz, python ile yazılmış bir yazılımdır.

Örnek vermek gerekirse: Pardus disk kalıbını(iso) indirdiniz. Peki ama bu disk kalıbı doğru mu indi yoksa hatalı mı indi merak ediyorsunuz. Disk kalıbını indirdiğiniz yerde sha1sum ya da md5sum gibi anlamsız harf ve rakamlardan oluşan bir kontrol özeti var. İşte bu yazılımı kullanarak o kontrol özeti ve disk kalıbından oluşturulacak kontrol özetlerini karşılaştırıp disk kalıbının doğru inip inmediği hakkında bilgi sahibi oluyorsunuz :D

Neyse Qt arayüzden bir resim koyayım da gözümüz günlümüz şenlensin değil mi :D

ÇOMAR (COnfiguration MAnageR - Yapılandırma Yöneticisi), sıradan bir işi yapmak için Google'da saatler geçirmeyin, anlamadığınız bir formatta yazılmış ayar dosyalarını kurcalamayın ve bu sırada sisteminizi uçurmayın diye oluşturulmuş bir ayar yönetim sistemi. PiSi'nin kardeşi olur kendisi; biri uygulamaları kurar, diğeri yapılandırır - ya da en azından yapılandırma işi için kolay kullanılabilir bir ortam yaratır.

Misal, ağ bağlantısı kurmak istiyorsunuz. Bunu farklı yollarla, farklı yöntemlerle yapabilirsiniz. Ethernet, wireless, modem ve 3G kullanabilirsiniz. Ethernet ile yapacaksanız iş nispeten kolaydır; DHCP istemcisini açar, IP almaya çalışırsınız. makul bir süre sonra IP alamazsanız, ağda bir sorun olduğunu anlarsınız; ya da IP alıp hayatınıza devam edersiniz. Kablosuzda durum biraz daha karışıktır. DHCP ile IP almadan önce -varsa- kimlik doğrulama yaparsınız, doğrulama şekline göre farklı ayarlar yapar, farklı uygulamalar çalıştırırsınız. Her işi konsoldan yapmanızı gerektiren sadist bir işletim sistemi kullanmıyorsanız, genelde bu iş için bir araç kullanırsınız. İşlem yapmadan önce sizden yetkili kullanıcı parolasını ister, ilgili dosyaları değiştirir, gerekli programları çalıştırır.

Çoğu Linux dağımı bu işi böyle yapar. Belirli bir görevi yerine getirmek için oluşturulmuş -çoğu dağıtıma özgü- yönetim arabirimleri, kendi yöntemleri ile ayarları değiştirir, komut çalıştırır ve sonuçta kullanıcının isteğini yerine getirir. Sorun ise, aynı ayar dosyaları ya da uygulamalar farklı yönetim araçları ve bu araçlardan bilgi almak isteyen diğer uygulamalar tarafından kullanılmak istendiğinde ve kullanıcılara bir işi yapabilmeleri için yetkili kullanıcı (root) hesabı parolası verilmesi gerektiğinde ortaya çıkar.

ÇOMAR, burada devreye girer, sade ve basit bir çözüm ile. Pardus'ta sık yapılan işler için görev modelleri tanımlanır ve bu görevleri üstlenecek uygulamaların birbirlerinin ayağına basmadan, altyapıdaki değişikliklerden (değişen sürümler, kullanılan yeni teknolojiler, ...) çalışmalarını sağlayacak ve gerektiğinde yetki kontrolü yapabilen bir yönetim katmanı oluşturulur.

  • Ağ bağlantısı yönetimi
    • Aygıtları listele
    • Aygıt üzerinde bir bağlantı oluştur
    • Adres ayarları yap
    • Bağlantıyı aç
    • Bağlantı bilgilerini göster
    • ...
  • Servis yönetimi
    • Servisleri listele
    • Servisi aç
    • Servis bilgilerini al
    • ...
  • ...

Görev modelleri yukarıda görüldüğü gibi olabildiğince sadedir, uygulamalardan ve teknolojilerden bağımsızdır. Alt görevleri yerine getirecek kodlar ise görevi yerine getirecek uygulamanın PiSi paketi ile beraber gelen Python betikleridir (bunlara ÇOMAR betikleri diyoruz) ve bu betikler içinde modelde tanımlı her alt görevi yerine getiren bir fonksiyon bulunmaktadır. Her uygulama, aynı görevi farklı şekillerde yerine getirdiğinden, her uygulamanın ÇOMAR betiği farklıdır. Betikler, uygulamaların PiSi paketlerini hazırlayan -teorik olarak, Pardus geliştiricileri arasında, o uygulamayı en iyi bilen- geliştiriciler tarafından yazıldığından, arabirimlerin keyfi yöntemlerle ayar dosyası değiştirme ya da komut çalıştırmasından daha güvenli ve düzenlidirler. Detaylı bilgi için, mevcut görev modelleri ve bu görevleri yerine getirecek ÇOMAR betiklerinin formatları incelenebilir.

Arabirimler ve ÇOMAR betikleri arasında duran ve yetki kontrolü yapan katmanda ise, yapılan iş teknik olarak karışık görünse de, aslında son derece basittir. Arabirimden alınan bir çağrı, örneğin ağ bağlantısı kurma emri; çağrıyı yapan kullanıcının o işi yapmaya yetkisi olup olmadığı kontrol edildikten sonra, ilgili uygulamanın ÇOMAR betiğine yönlendirilir ve betikte tanımlı fonksiyon çalıştırılır. Sıkıcı detaylar için, iletişim için kullanılan DBus'a (İngilizce) belgeler ve ara katman ile ilgili tasarım notları incelenebilir.

Arabirimlerin, bu ara katman ile iletişimi kolay bir şekilde yapabilmeleri için -nispeten- basit bir Python kütüphanesi bulunmaktadır:

    import comar
    link = comar.Link()
    print "Servis betiği olan uygulamalar:"
    print list(link.System.Service)

Bu Python kütüphanesi ile ilgili daha fazla örnek, COMAR API projesine ait Beni Oku dosyasında ve örnekler dizininde bulunabilir.

2
Kas

Uzun bir süredir zamanımı alan en büyük iş, Kurumsal 2.0 ile birlikte görücüye çıkacak olan uzaktan yönetim sistemi Ahenk'in ikinci sürümü. Ahenk 2.0, zamanında, fazlasıyla MSB odaklı bir yazılım haline geldiğinden hiçbir Pardus sürümüne dahil etmediğimiz, sadece kaynak kodları (hep yaptığımız, ve hep yapacağımız gibi) SVN depolarında yayınladığımız ilk sürüm ile hemen hemen aynı özelliklerle piyasaya çıkacak.

Ahenk 2.0, ilk sürüme göre çok daha uzun bir ömre sahip olacak ve hayatını "dolu dolu" yaşayacak. İlk adımda planlanan özellik listesi şöyle:

  • Kullanıcı/grup yönetimi [2.0]
  • Paket güncellemeleri yönetimi [2.0]
  • Sistem servisleri yönetimi [2.0]
  • Paket yönetimi [2.1]
  • Güvenlik duvarı yönetimi [2.1]
  • Log yönetimi [2.1]

Ahenk 2.0 ile ilgili bir sonraki blog girdisinde uzaktan yönetim arabirimi Lider 2.0'ın ekran görüntülerine yer vereceğim, görüşmek üzere.

13
Eki

Geçtiğimiz haftalarda kendime 4GB’lik bir parmak bellek aldım. Bu belleğe çalışan bir linux kurmak gibi bir niyetim vardı. Pardus 2009′un çalışan cd’si çıkmış olsaydı kuracaktım bellek başına ve gittiğim yerlerde kullanacaktım. Fakat henüz çıkmadı pardus 2009 çalışan cdler. pardusman ile kendim yapayım dedim. Ama o imajın hazırlanması öyle uzadı ki benim o kadar vaktim yoktu! Ayrıca boyutun yaklaşık 1 cd olmasını isterken o biraz fazlaca büyüdü!

Pardusu usb’me kurmaktan vazgeçtim. Evimdeki bilgisayarda pardus vardı ve bu bana yeterdi. Usb’ye xubuntu kurdum. Çalıştı çok güzel bir şekilde. Kurdum derken sabit diske kurar gibi ciddi ciddi kurdum :D xubuntu için belleğimin 2.5 gb’lik kısmını ayırmıştım. xubuntu’ya güncelleme yaptım ve bazı yazılımlar kurdum derken bir baktım 200 küsür mb’lik veri indirmişim! Neyse işlemlerimi yaptım derken sistemi yeniden başlatayım dedim. Sistemi yeniden başlattıktan sonra nedense xubuntu açılmaz oldu. Yine zamanım olmadığı için xubuntu üzerine çok uğraşamadım.

Neticede xubuntu’dan da vazgeçtim. Bu arada başka dağıtımları inceliyorum sürekli. Slax kullanayım dedim fakat içindeki xfce sürümü 4.4.3 idi. Şuan ki xfce sürümü 4.6.1. Yani slax birazcık eski xfce kullanıyor. Birisinden sakın arch kurma sistem bomboş geliyor gibi bir söz duymuştum. Usb’ye yakışır bir sistem :D Araştırdım cidden sistem kurulumuyla gelen bir masaüstüsü yok ama daha sonradan kurabiliyorsunuz istediğinizi. Paket sistemi de pacman. Pacman paketçi adam der gibi :D Neyse indirdim bir iso yazdım cd’ye. Tabi masaüstü falan olmayınca sistem kurulum cd’si de küçük oluyor. Neyse usb’me kuracağım arch’ı. Fakat xubuntu kuruluyken edindiğim bir tecrübe ile fat32 olarak biçimleyeceğim ve windowslu sistemlerde görebileceğim kısım disk başında olmalı yoksa windows’tan fat32′li bölüme ulaşamazsınız.

Buradaki belgeyi baştan sona birkaç kez okuyup(2 ya da 3) notlarımı aldıktan sonra Ya Allah deyip başladım archlinux kurulumuna. Belgede gördüğüm kadarıyla(sizinde göreceğiniz gibi :D ) kurulum konsol tabanlı olduğundan biraz ürkütücü görünüyor. Neyse belgede yazanları aynen uyguladım. Sistemi tekrar başlatmam gerekti 1 kere sonra tekrar devam ettim kuruluma. Kurulumda önemli bir nokta var onu hemen belirteyim de siz de zorluk çekmeyin. Burada keymap’ı eklemenizi istiyor. Tamam onda sorun yok ama eğer usb diskinize kurulum yapıyorsanız oraya birde usb eklerseniz sistemi sadece kurmakla kalmayıp birde açılışına şahit olursunuz. Kurulumda yanlış hatırlamıyorsam eklediğim tek şey usb yazmaktı kurulum belgesine ilave olarak. Yok birde grub ayarında hd(1,1)’deki ilk 1′i 0 yapmıştım. Onun sebebi de usb kurulum sırasında 1. disk olarak görülüyor(0.’sı sabit diskim) Fakat grub usb’den açılırken usb 0. disk olarak görülecek ve 0. diskin 1. bölümüne(arch burada) bakılacak(hd(0,1)).

Sistem açılınca hemen güncelleme yaptım. yaklaşık 150 mb mi neydi tam hatırlamıyorum güncelleme indirdi pacman. xorg’u xfce’i ve gdm’yi kurdum ilk olarak. Konsolla fazla içli dışlı olunca insanın içini karartabiliyor! Gdm’den xfce’i açınca siyah ve beyaz dışındaki renkleri’de görerek gözlerime bayram ettirdim. İşime yarayacak yazılımları pacman aracılığıyla kurdum. Güzel şey şu pacman. Sonuç olarak xfce’li hafif mi hafif bir usb’m oldu :D

Daha sonra bu usb’yi başka bilgisayarlarda deneyelim dedim. İlk denediğim 2 bilgisayarın usb’den çalıştırma desteği yokmuş. Sonraki denediğim bilgisayarda grub beni karşıladı. Uygun yerden arch’ı başlatıyordu ki bir problemle karşılaştık! Bu bilgisayardaki sabit diskler ile benim bilgisayarımdakiler benzer sayıda olmadığından mıdır nedir kök dizini bağlayamadığı için sistem açılamadı! Biraz önce de bu problemi çözmek adına fstab ile çeşitli oynamalar yapıyordum ve mutlu sona ulaştım.

Fstab dosyasında bağlanacak aygıtlar /dev/sdxy şeklinde gösterilmişti. İnternette araştırma yaparken UUID diye bir şeyler gördüm. Bu bana bir yerden tanıdık geldi. Grubdan tanıdık geldi. Grub’a ayar çekerken “/dev/disk/by-uuid/…….” diye bir yer görmüştüm. İşte bunu fstab’da /dev/sdxy yerine UUID=….. şeklinde yazınca işlemin tamamlanmış olması gerekiyordu. Ben ayrıca fat32′li bir bölüm de oluşturduğum için bu bölümünde bu yöntemle bağlanmasını istiyordum. Fakat gel gör ki nedense fat32′li bölüm UUID ile bağlanmadı! Bu arada bölümlerin uuid’lerini öğrenmek için “ls -l /dev/disk/by-uuid/” komutunu tırnaksız olarak konsola vermelisiniz. Neyse benim fat32′li bölüm nedense bu yöntemle bağlanamadı. Madem UUID yemiyor bende LABEL yaparım dedim ve fat32′li bölüme mtools ile bir LABEL atadım. fstab’a bunuda ekledim ki açılışta bağlansın beni uğraştırmasın :D Ve şuanda gayet güzel çalışan archlinux’lu usb’m ile blog girdisi oluşturuyorum :D

Pacman pacman diyorum da bu pacman iyi hoş da indirdiği verileri biriktiriyor. Aslında benim istediğim de tam olarak bu. Fakat ben zaten 2 gb yer ayırmışım arch’a birde paket kurulum dosyaları burayı işgal ederse bu 2 gb çabucak dolar! Hemen pacman’in ayar dosyasıyla oynayarak deposunu fat32′li bölüme aldım. Fat32′li bölümden de uygun zamanlarda sabitdiskime alarak usb’mde yer açıyorum. İyi oluyor yahu :D

Bu yazıyı yazmamdaki amaç archlinux’u usb belleklerine kuracak kimselerin nelere dikkat etmeleri gerektiğini yaşayıp tecrübe edip paylaşmak istemem.