24
Mar

Bu hatayı aldığınızda öncelikle listelerde geçerli olan remove(int index) fonksiyonunun referans sayfasına bakalım;

Throws:
UnsupportedOperationException - if the remove method is not supported by this list.

Aslında hata gayet açıklayıcıydı ama başka tür hatalar aldığınızda da referans sayfasına bakmanızda fayda olduğundan bu aşamayı da yazdım.

Ben bu hatayı Arrays.asList ile liste oluşturduğumda aldım;

        List enumList = Arrays.asList(ApplicationStatus.values());
        enumList.remove(3);

Bu kodun amacı ApplicationStatus sınıfındaki enum degerleri bir listeye atıp ardından bazı elemanları silme işlemi yapmaktı.

Bu şekilde asList ile oluşturulan listeler java.util.Arrays$ArrayList gibi bir liste döndürüyor ve bu tip listeler remove() add() gibi fonksiyonları desteklemiyor. Bu sebepten UnsupportedOperationException hatasını alıyoruz.

Bunun çözümü bir şekilde düzgün bir liste oluşturmak. Ben şöyle yaptım;

        List enumList = Arrays.asList(ApplicationStatus.values());
        List realList = new ArrayList();
        for (int i = 0; i < enumList.size(); i++) {
            realList.add(enumList.get(i));
        }
        realList.remove(3);

Artık realList ile istediğim gibi remove(), add() fonksiyonlarını kullanabiliyorum.

You can see this error when you try to upload something on Drupal. If you see this, probably there is a permission or ownership problem.

The %directory is a variable, can change for everyone. For example I was tring to upload language file and my %directory was sites/default/languages. So I enter that command from console and problem solved;

chown nobody:nobody sites/default/languages

If your problem continue try to

chmod 777 %directory.

Drupal‘de başlıktaki gibi bir hata ile karşılaşırsanız büyük ihtimalle dosya izinlerinde veya sahipliklerinde bir problem var demektir. Dosya yükleme işlemlerinde bu hata ile karşılaşabilirsiniz. Ben bu hata ile dil dosyası yüklemeye çalışırken karşılaştım.

Başlıktaki %directory yükleme işlemine göre değişebilir. Örneğin benim aldığım hatadaki %directory, sites/default/lanuages idi. Şu kod ile dizin sahipliğini düzeltince sorun ortadan kalktı;

chown nobody:nobody sites/default/languages

Bu kodun sizin probleminizi çözeceği kesin değil, sizin server ayarlarınıza göre nobody yerine başka bir şey yazmanız gerekiyor olabilir ama önce yukarıdaki kod denemenizde fayda var.

6
Mar

Bildiğiniz gibi birçok devlet sitesi Firefox’ta düzgün çalışmamakta. TCDD Bilet Satış & Rezervasyon Sistemi de bunlardan biri.

Sistemdeki sorunu 20 Şubat 2009 tarihinde site üzerinden yetkililere bildirdim. Bugün (6 Mart 2009) konu ile ilgili iki adet cevap geldi. İlkinde mesajın ilgili birime iletildiği, ikincisinde -sanırım ilgili birimden gelen cevapta- ise şu yazıyordu;

MİYS formu ile ilgili değişiklik sadece form sayfasını değiştirerek
yapılamamaktadır, MİYS sisteminin tamamen değişmesi gerekmektedir yanıtı
alınmıştır. Kısa vadede bu şekilde bir çözüm planlanmamıştır.

Ancak sorun dedikleri gibi büyük değildi, bu işten kaçmaktan başka bir şey değildi. İki css düzeltmesi ile sistemin Firefox’ta düzgün çalışması sağlanıyordu.

Çözümü firebug ile uygulayıp ekran görüntülerini aldıktan sonra yetkililere göndermek üzere bir belge hazırladım ve belgeyi yetkililere gönderdim. Umarım bu sefer iki css düzeltmesi yapabilirler ve sorun çözülür; Firefox kullananlar TCDD’den bilet almak için Internet Explorer aramak zorunda kalmaz. Aslında şu anda da aramanıza gerek yok, yazının devamında Firefox ile nasıl sorunu aşacağınızı yazacağım.

TCDD-Firefox sorununa geçici çözüm;

Kesin çözüm

Bu konuyu twitter’da da yazdım ve sevgili Uğur Çetin çözümü uygulayan bir Greasemonkey* betiği yazmış. TCDD bu sorunu çözene kadar bu betiği kullanarak sistemi sorunsuz bir şekilde kullanabilirsiniz.

  1. Greasemonkey eklentisi kurulu değilse buradan kurun.
  2. TCDDFix greasemonkey betiğini buradan kurun.
  3. Herşey hazır. Sisteme gitmek için buraya tıklayın ve işleminizi yapın.

TCDD-Firefox sorununa kesin çözüm; TCDD’deki yetkili kişilerin bu belgeyi okuyup sorunu çözmeleri.

Teşekkürler betiği yazan Uğur Çetin‘e gitsin.

* Greasemonkey ilgili siteye javascript ile müdahele edebilmenizi sağlayan bir Firefox eklentisi.

Sonradan gelen edit;

TCDD’den cevap geldi;

Sayın Berberoğlu,
Aşağıda da yer alan 2. elmekte sözü geçen tüm sistemin değişmesi hususu
sadece Müşteri İlişkileri Yönetim Sistemi (MİYS) formu düzenlemesi için
ilgili firmadan aldığımız cevaptır.
Online Bilet Satışı ve Yer Rezervasyonu uygulamasında menu.css dosyasında
yapılacak değişiklik ile ilgili öneriniz incelenmektedir. İlginize
teşekkür ederiz.

Umarım yakın zamanda sorunu düzeltirler.

4
Mar

Firefox 3 verileri sqlite veritabanında saklıyor. Sqlite veritabanı zamanla büyüyor ve büyüdükçe ara ara onarıma, optimize edilmesine ihtiyacı oluyor. Sqlite’ta bu optimize etme işlemini vacuum ile yapıyoruz.

Firefox 3′ün kullandığı veritabanını “vacuum”ladığımızda gözle görülür bir hız farkı oluyor ve Firefox 3 daha az ram harcıyor.

Veri kaybetmeden vacuum işlemini şu şekilde yapabilirsiniz;

Linux için;

  1. Firefox’u kapatın
  2. Konsolu açın ve şu komutu uygulayın;
    for f in ~/.mozilla/firefox/*/*.sqlite; do sqlite3 $f 'VACUUM;'; done
  3. Bu kadar :)

Windows için;

  1. Firefox’u kapatın.
  2. Çalıştır’a cmd yazıp komut satırını açın.
  3. Firefox profilinizin buluduğu dizine cd komutu ile girin. (Örn: C:\Documents and Settings\<username>\Application Data\Mozilla\Firefox\Profiles\) [Ayrıntılı bilgi]
  4. Vacuum komutunu çalıştırın;
    for %i in (*.sqlite) do @echo VACUUM; | sqlite3 %i
  5. Bu kadar. Windows için olanı denemedim, çalışmayabilir.

Firefox 3′ü vacuumlayarak hızlandırmayı ilk kez jnmbk‘nın tweetinde görmüştüm. Kendisine teşekkürlerimizi iletelim.

5
Şub

Konsoldan play komutu ile müzik dinleyebileceğinizi biliyor muydunuz ? Artık biliyorsunuz :)

Örneğin bulunduğunuz klasörde abc.mp3 adında bir mp3 dosyasını çalmak için komut şu;

play abc.mp3

Peki niye konsoldan müzik dinlenir ? Çünkü Amarok gibi ek bir programın açılmasını beklemeden çok hızlı bir şekilde istediğiniz şarkıyı çalabiliyorsunuz. Fakat Amarok gibiside yok :)

Ek: Blogumu sık sık güncellemek istesemde yoğunluktan dolayı maalesef çok yazı yazamıyorum. Bilmeyenlere; yaklaşık 5 aydır Uygun Teknoloji’de çalışıyorum, bu yoğunluk onun yoğunluğu.