13 11 2009

Ubuntu 9.10 çıktı

Ubuntu 9.10 sürümü yayınlandı. Detaylar için http://www.ubuntu.com/products/whatisubuntu/910features adresini ziyaret edebilirsiniz.

Eğer daha önceden 9.04 sürümüne sahipseniz güncelleme yapmak için
Sistem > Yönetim > Güncelleme Yöneticisi
bölümüne girdiğinizde 9.10 sürümünün hazır olduğunu belirten bir mesaj görürsünüz. Yandaki güncelleme düğmesini tıklayarak sisteminizi yükseltebilirsiniz. Mevcut paketlerin güncellemeleri de dahil edilerek güncelleştirme yapıldığı için bu işlem uzun sürebilir (1-2 saat civarı). Eğer benim yaşadığım gibi güncelleme sonrası bilgisayarınız açılırken One or more of the mounts listed in /etc/fstab cannot yet be mounted şeklinde bir hata alabilirsiniz ve bu bilgisayarı açmanızı engelleyebilir. Bunun nedeni paketlerin güncellenmesi sonrasında yapılması gereken ayarlama işleminin bir sebepten yarıda kalması / yapılmaması. Bunu şu şekilde düzeltebilirsiniz:

Önce bu hatayı almadan önce ESC tuşuna basarak rescue modunda giriş yapmanız gerekiyor. Bu safhaya geçilmesi anlık olduğu için bu kısma gelmeden önce ubuntu animasyonunu gördüğünüzde sürekli olarak tekrarlayarak ESC tuşuna basın. Bir süre sonra root olarak konsola giriş yapmış olacaksınız. (Sadece ESC tuşuna fazla basmaktan dolayı otomatik komut tamamlamayla ilgili bir soruyla karşılaşırsınız. No diyerek iptal edebilirsiniz). Sisteme root kullanıcı olarak giriş yaptığınızdan bu andan itibaren dikkatli olmalısınız. Rescue modunda diskiniz muhtemelen salt okunur olarak bağlanmıştır (mount işlemi). Bunu düzeltmek için en üst düzey dizini (eğer bölümlendirmeniz farklı şekildeyse birden fazla bölüm için bu işlemi yapmanız gerekebilir) yazılabilir olarak tekrar bağlamanız gerekir. Bunu yapmak için şu komutu kullanın:
sudo mount /dev/sda2 -o remount,rw /
Burada sda2 yerine kendi sisteminizde kök dizinin bölümü için kullanılan device adını kullanmalısınız. Emin değilseniz öğrenmek için fdisk -l komutunu kullanabilirsiniz. Bundan sonra kök dizinin yazılabilir olduğunu test etmek için mkdir komutuyla (daha sonra silmek üzere) yeni bir dizin oluşturabilirsiniz.
Son olarak sistem güncellemesi sırasında yarım kalan işlemi tamamlamak için aşağıdaki komutu girin:
dpkg --configure -a
Bu komut oldukça uzun süre çalışabilir. İşlem sırasında hangi paketlerin ayarlandığını görebilirsiniz. Ayarlama işlemi tamamlandıktan sonra reboot komutu ile sisteminizi yeniden başlatın.. Eğer ayarlama işlemi sonrasında bazı paketler için hatalar aldıysanız ilgili paketleri synaptic paket yöneticisini kullanarak tekrar kurabilirsiniz.

08 10 2009

Ubuntu Live usb disk oluşturma problemi yaşayanlar için

Ubuntu Live usb disk (yada cdden işletim sistemi çalıştırmaya izin veren başka bir dağıtım da olabilir) kurulumunda sorun yaşayanlar için bulduğum bir yöntemi paylaşmak istiyorum:

http://rudd-o.com/en/linux-and-free-software/a-better-way-to-create-a-customized-ubuntu-live-usb-drive

Bu yöntemle kısaca usb diskte iki farklı dosya sistemiyle bölümlendirme yapılıyor ve birinci bölüme (artan kısmı windows tarafında da bellek olarak kullanabilirsiniz ) usbden kullanmak istediğiniz alana başlatmak için gerekli dosya ve dizinler ve sanal harddisk dosyası koyuluyor, ikinci bölüme ise dağıtım cdsinin iso dosyası kaydediliyor. Bu şekilde eğer bilgisayarınızın (daha doğrusu bios 'un) usb diskten başlatma özelliği varsa sanki cd den başlatmış gibi işletim sistemi kullanabiliyorsunuz. Üstelik ayrılmış alana sahip sanal disk dosyası (casper-rw) olduğu için yaptığınız değişiklikler kalıcı oluyor (persistent mode).

28 09 2009

MSI VR330 için Linux 'ta bios güncelleme

Bir süredir MSI VR330 dizüstü bilgisayarımdaki kilitlenme sorununa neden olduğunu tahmin ettiğim (umarım bundan sonra aynı sorun olmaz) eski biosu güncellemek için msi sitesindeki bios flash dosyasını indirdim ancak ne yazık ki sadece MSDOS için vardı. Uzun uğraşlardan sonra Linux için bios güncellemesi yapmanın basit bir yolunu yabancı bir sitede buldum ve burada paylaşmak istiyorum. Linux sistemde başlatılabilecek msdos vb. bir sisteme ihtiyacım vardı ancak daha önce GRUB ayarları üzerinde oynama yaptığımda başıma gelenlerden dolayı harddiskte bölümleme yapıp msdos kurmak istemedim. Googleda yaptığım bir arama sonucu ingilizce bir kaynakta gördüğüm çözüm üzerine FREEDOS işletim sisteminin floppy bootdisk denen açılış disketini imaj dosyası olarak indirdim ancak bilgisayarımda disket sürücü olmadığı için bunu çeşitli adımlardan sonra iso dosyası haline getirip cdye yazabildim. Cd den başlatıp dos komutlarıyla bios güncellemek için flash.bat dosyasını çalıştırdım ve bios güncellemesi başarıyla gerçekleşti. Önce FDOEM.144 dosyası elde etmek için http://www.fdos.org/bootdisks/autogen/FDSTD.144.gz adresindeki dosyayı indirip gunzip komutuyla açarak FDOEM.144 dosyasını elde etmeniz gerekiyor. Ayrıca msi vr330 için bios flash dosyasını msi resmi sitesinden indirebilirsiniz. (Ben bios dosyalarını msibios dizinine kopyaladım). Bundan sonraki adımlar için komutlar şu şekilde:
modprobe vfat
modprobe loop
mkdir /tmp/floppy
sudo mount -t vfat -o loop FDOEM.144 /tmp/floppy
sudo cp msibios/ /tmp/floppy/ -R
sudo umount /tmp/floppy
mkisofs -o bootcd.iso -b FDOEM.144 FDOEM.144
Son komutla birlikte bootcd.iso adında bir dosya oluşturduktan sonra bu dosyayı herhangi bir cd yazma yazılımı kullanarak (brasero, gnomebaker vs.) boş bir cdye kaydedin. (Dikkat: burn data cd değil burn cd image seçin ) Sonuç olarak elinizde içinde bios güncelleme dosyaları olan msibios dizinini içeren bir freedos başlangıç cdsi (linux sistemler için) olacak. Bu cdyi sürücüye taktıktan sonra bilgisayarı yeniden başlatın. Komut isteminde cd msibios komutuyla msibios dizinine geçerek flash.bat dosyasını çalıştırın. (Bu işlem sırasında işlemin yarım kalması kalıcı hasar yaratabilir). Bazı yükleme işlemlerinden sonra bios güncellemesi tamamlanır ve bilgisayar kapanır (en azından bende öyle oldu). Bilgisayarı yeniden açarken del tuşuna basarak yeni biosunuzun ayarlarına erişebilirsiniz. Hatta daha önceden bios paneline şifre koyup unuttuysanız bios yenilendiği için şifreniz de silinecektir.

22 09 2009

İyi Bayramlar

Ramazan Bayramı’nızı kutlar, hepimize hayırlar getirmesini dilerim.

19 09 2009

blogger / blogspot sitelerine erişememe sorunu

Birkaç gündür blogger siteleri (blogger.com ve blogspot uzantılı tüm siteler) opendns kullanıcıları tarafından erişilemez durumda. Böyle bir sorunla karşılaştıysanız dns sunucularınız opendns olabilir. DNS sunucuları için şu adresleri kullanabilirsiniz:

Yeğlenen DNS sunucusu: 68.105.28.79
Diğer DNS sunucusu: 69.111.95.106

18 09 2009

Geany için siyah tema

Bir süre araştırma yaptıktan sonra Linux ortamında kod yazmak için Geany düzenleyicisini kullanmaya karar verdim. Php ve birçok diğer dil için verdiği renklendirme desteği ve php için otomatik tamamlama özelliği bu kararımda etkili oldu. Bir süre sonra yaşadığım tek sorunun zemin rengi olduğunu farkettim. Uzun süre ekrana bakınca beyaz zemin gerçekten göz yorucu oluyor. Bunu düzeltmek için siyah bir tema aradım ve şu adreste buldum:

http://code.google.com/p/geany-dark-scheme/downloads/list

Birçok dil için özenle seçilmiş renklerden oluşan siyah zeminli bu tema gerçekten hayat kurtarıcı nitelikte. Gözleri yormayan rahat renkler seçilmiş. Yukarıdaki adresten geany_dark_filedefs_20090516_193911.tar.bz2 dosyasını indirdikten sonra arşivdeki dosyaları /home/[kullanıcı adınız]/.config/geany/filedefs dizinine çıkarın ve geany programını kapatıp yeniden başlatın. Bunun dışında herhangi bir ayar yapmanıza gerek yok.

.htaccess dosyalarını çalışır hale getirmek

Eğer sunucunuzda htaccess dosyaları işe yaramıyorsa öncelikle ayar dosyanızda (ör: /etc/apache2/apache2.conf)
AccessFileName .htaccess
satırının bulunduğundan emin olun. Daha sonra /etc/apache2/sites-available/default dosyasını açmak için önce Alt F2 ile konsolu açın ve şu komutu girin:
sudo gedit /etc/apache2/sites-available/default
Bu komuttan sonra gedit düzenleyicisi ile dosyanın açılması gerekiyor. Dosyayı açtıktan sonra sunucu dizininizi (ör: /var/www/) ilgilendiren Directory imi ile başlayan bölümde AllowOverride değerini All olarak değiştirip dosyayı kaydedin ve apache yi şu komut ile yeniden başlatın:
sudo /etc/init.d/apache2 restart
Artık .htaccess dosyalarının sunucunuzda çalışıyor olması gerekiyor.

26 06 2009

PhpED ile farklı uzantıda dosyaları renklendirme

Eğer PhpED kullanıyorsanız ve standart olmayan uzantıya sahip bir dosyayı PhpED 'in kapsamında olan dillerden birine göre renklendirmek (daha doğrusu o dile ait kod olarak algılanmasını) istiyorsanız bunun için basit bir ayar mevcut. Örneğin .ctp uzantılı dosyaların (Cakephp şablon dosyası) html dosyaları gibi değerlendirilmesini sağlamak için:

Tools > Settings > IDE > Associations
ayar sayfasına giderek HTML ye ait uzantılara ;*.ctp ekleyin. Aynı işlemi php için de yapabilirsiniz. Bunun için ise listede uzantıları arasında .php olan satırı bulup aynı şekilde ;*.ctp ekleyin.

OK düğmesini tıkladığınızda bir süre gecikme ardından .ctp uzantılı dosyalarınız artık html ve php kodları olarak algılanır.

03 05 2009

Jquery ile ajax kullanımı (ajax jquery)

Güzel bir pazar gününde daha önce yazmayı düşündüğüm jquery ile ajax kullanımı hakkındaki yazıma başlıyorum. Jquery 'nin ajax kullanımını kolaylaştırdığından başka bir yazımda bahsetmiştim. İlk olarak temel ajax işlevini inceleyelim:

$.ajax({
type: "POST",
url: "some.php",
data: "name=John&location=Boston",
success: function(msg){
alert( "Data Saved: " + msg );
}
});

Bu işlevde ajax için bazı parametreler kullanıyoruz. type değeri yapılacak isteğin türünü (POST yada GET), url değeri çağrı yapılacak adresi, data ise gönderilen parametreleri url biçiminde kodlanmış olarak içerir. success değişkeni ise ajax çağrısının başarıyla sonlanmasının ardından yapılacak işlemleri içeren bir işlev tanımıdır. Bunun için ya function ile yeni işlev tanımlaması yaparız yada daha önce tanımladığımız bir işlevin adını kullanabiliriz.

Jquery 'deki Ajax işlevlerini listelersek:

$.ajax(options)
$.get(url, data, callback)
$.getScript(url, callback)
$.getJSON(url, data, callback)
$.post(url, data, callback, type)
load(url, data, callback)


Gördüğünüz gibi bu işlevler genel olarak url, data ve callback parametreleriyle kullanılmaktadır. Elbette bu işlevler arasında bazı farklılıklar vardır. Herbirinin amacını kısaca özetlemek gerekirse:

ajax işlevi en temel olanıdır. Kullanım örneğini yukarıda görmüştük. Bu işlevin avantajı daha detaylı ayarlar yapabilmenizdir ve ajax çağrısıyla ilgili daha fazla olaya ait callback işlevi tanımlayabilmenizdir. Devam etmeden önce ajax olaylarını listelemek istiyorum:

ajaxComplete(callback) ajax çağrısının tamamlanmasının ardından yapılacaklar için
ajaxError(callback) hata oluşması durumunda yapılacaklar için
ajaxSend(callback) ajax ile veri göndermeden önce yapılacaklar için
ajaxStart(callback) ajax çağrısı başladıktan sonra yapılacaklar için
ajaxStop(callback) ajax çağrısı bittikten sonra yapılacaklar için
ajaxSuccess(callback) ajax çağrısının başarıyla tamamlanmasının ardından yapılacaklar için


ajax() işlevi dışındaki işlevler için sadece ajaxComplete olayı kullanılır ki bu çoğu zaman yeterlidir.

$.get(url, data, callback) işlevi en basit ajax işlevlerinden biridir. Parametre olarak çağrının yapılacağı url, gönderilecek veri, ve çağrının tamamlanmasıyla yapılacak işlev tanımlaması kullanılır.

$.getScript(url, callback) işlevi ise aynı get işlevi gibidir ancak bu işlevin amacı ajax çağrısı ile elde edilen javascript kodunu çalıştırmaktır.

$.getJSON(url, data, callback) işlevi de get işlevi gibidir. Tek farkı gelen ajax çağrısı ile gelen sonucu metin olarak değil JSON verisi olarak almasıdır. Bu işlevin kullanımının bir üstünlüğü vardır. Eğer tek bir ajax çağrısıyla birden fazla veri elde etmek istiyorsanız (ör: sayfanın farklı yerlerinde kullanmak için) $.getJSON işlevini kullanabilirsiniz. Hatta sunucudan dönen json verisi içinde elde etmek istediğiniz veri haricinde işlemin başarı durumunu belirten bir değer, hata olması durumunda ziyaretçiye verilecek mesaj, en son işlem zamanı gibi ekstra veriler ekleyerek gelen verinin farklı şekillerde kullanılmasını sağlayabilirsiniz. Sunucu tarafında tek yapmanız gereken sonucu json olarak dönmek. Bunun için göndermek istediğiniz verileri bir dizi içine ekleyerek (associated array) bunu json_encode işlevi ile json biçimine çevirip echo ile çıktı vermeniz yeterlidir.

$.post(url, data, callback, type) işlevinin özelliği ise aktarım yöntemi olarak POST kullanması ve dönen verinin callback işlevine ne şekilde aktarılacağını (ör: json, xml) belirleme imkanınızın olmasıdır. Bunu bir örnekle açıklamak istiyorum:

Örneğimiz için sunucu tarafında basit bir json çıktısı kullanalım:

echo json_encode(array("name"=>"John","time"=>"2pm"));

Bu çıktıyı elde edip kullanacağımız ajax çağrımız şu şekilde olabilir:

$.post("test.php", { func: "getNameAndTime" },
function(data){
alert(data.name); // John
console.log(data.time); // 2pm
}, "json"
);

Bu çağrı ile test.php işlevine POST yöntemiyle istekte bulunuyoruz (bu örnekte gönderilen veri olarak sunucuda çalıştırılacak işlevin adını verdik ) ve 4. parametremizde belirttiğimiz üzere sonucun json olarak değerlendirilmesini sağlıyoruz. Bu şekilde gelen veriyi herhangi bir işleme gerek kalmadan doğrudan callback işlevinde kullanabiliyoruz.

load(url, data, callback) işlevi ise diğerlerine göre özel bir uygulama amacıyla kullanılmaktadır. En başta $ işaretinin olmadığına dikkat edin. Bunun nedeni bunun doğrudan çalıştırılan değil bir seçici ile elde jquery nesnesi üzerinde uygulanmasıdır. İşlevin amacı basitçe ajax çağrısı yaparak gelen sonucu sayfanızdaki bir öğeye aktarmaktır.

$("#feeds").load("feeds.php", {limit: 25}, function(){
alert("The last 25 entries in the feed have been loaded");
});

Ajax çıktısının feeds idsine sahip öğeye aktarıldığına dikkat edin.

Jquery ile ajax kullanımını özetlemeye çalıştım. Ajax kullanımı için birçok uygulama alanı bulabilirsiniz. İhtiyacınıza göre yukarıda işlevlerden size uygun olanını seçmeniz işlemlerinizde kolaylık sağlayacaktır.

29 04 2009

Ubuntu 9.04 yayınlandı

1 hafta kadar önce Ubuntu Linux dağıtımının son sürümü olan 9.04 yayınlandı. (Ubuntu için sürüm numaraları yıl.ay şeklindedir). Şimdiye kadar birçok Linux dağıtımı denedim ancak hiçbirini bu kadar rahat kullandığımı hatırlamıyorum. Donanım desteği gerçekten çok iyi. Daha önce makinamda windows ve Linux birlikte kuruluyken ndiswrapper ile Windows sürücüsü kullanarak kablosuz ağa bağlanabiliyordum. Ubuntu 'da ise kurulumu tamamladıktan sonra herhangi bir ayar bile yapmadan kablosuz ağ bağlantısının açıldığını gördüm. Şimdiye kadar (muhtemelen yanlış ayarlar yüzünden) dahili mikrofon hariç herhangi bir donanım için sorun yaşamadım. Artık bütün hard diski Linux için kullanıyorum. Ayrıca ekran kartım için Linux sürücüsü indirip kurduktan sonra efektler de aktif hale geldi. Ubuntu son sürümünde daha önceki sürümüne göre görsellik açısından da ilerlemiş görünüyor. Detaylı bilgi için ubuntu.com adresini ziyaret edebilirsiniz.