Maven Projelerinde JSON-lib Dependency Hatası

Kısaca çözümü özetlemek gerekirse;
pom.xml içinde json-lib dependency satırına classifier etiketini eklemek gerekiyor:

<classifier>jdk15</classifier>

Uzun uzun anlatmak gerekirse;
Heyecanla bir Maven projesi yaptınız ve JSON kullanacağınız için pom.xml'e JSON-lib'i dependency olara eklediniz. Sonuç hüsran oldu. Maven bir türlü bu dependency'yi çözemediğini söyledi. Sinirlenmeye başladınız, çünkü her şey yolunda. Bağlantıda bir sorun yok. Proxy kullanmıyorsunuz ya da ayarları doğru yaptığınızdan eminsiniz. Daha da ötesi diğer dependency'ler sorunsuz yüklenirken bunda neden hata çıkıyor anlayamadınız. Google'dan çıkan sonuçlar kısaca başka şeylerden bahsetti. Sonunda soruna çözüm sunan bir yer buldunuz:

Meğer classifier etiketini de vermek gerekiyormuş. pom.xml'i açıp classifier olarak jdk15 değerini veriyorsunuz:

	<dependency>
		<groupId>net.sf.json-lib</groupId>
		<artifactId>json-lib</artifactId>
		<version>2.4</version>
		<classifier>jdk15</classifier>
	</dependency>

Sorun çözülüyor.

Linux Dosya İzinleri (File permissions)

Linux'u geç öğrenmenin getirisi ya da götürüsü diyelim. Aşağıdaki görsel bana bir şeyler ifade ettiğinden kenarda dursun istedim.

ll komutunun ardından görünen drxw'ler şifre olmaktan çıksın istiyorum. O halde şunu hatırlayayım:

Kaynak: Ücretsiz olarak dağıtılan Ubuntu Pocket Guide and Reference kitabı. İndirme adresi: http://ubuntupocketguide.com/download_main.html

Opera'yı Sevmeme Nedenlerim

Not: Yazıya Friendfeed'de yorumlar geldi. Bu yorumlar aşağıdaki sorunlarıma çözümler niteliğinde. O yüzden eklemeler yaptım.

Kullanım açısından en sevdiğim web tarayıcı (browser) Google Chrome. Fakat yakın zamanda Google'ın her şeyde gözünün olması sebebiyle (privacy vs) tüm işlemlerimi Chrome'da yapmak yerine alternatif ürünlere yönelmeye karar verdim. Bu ürünlerden biri de Opera.

Opera'yı eskiden de sevmezdim, hâlâ da sevmeden kullanıyorum. Belli bir süre için "bunun sebebi alışmamaktır herhalde" diye düşünüyordum. Şimdi ise yeterince kullandığımı düşünüyorum ve sevmeme nedenlerim sadece alışkanlık farkından kaynaklanmıyor.

  • Metin Seçildi Ve...
  • Bir sayfada geziniyorsunuz, bir kelimeyi çift tıkla seçtiniz (ya da bir cümleyi üç tıkla seçtiniz). Opera otomatik olarak bir menü açıyor. Bu menü açılınca Ctrl + C tuş kombinasyonu çalışmıyor. İlla ki açılan menüden "Kopyala" seçeneğini seçeceksiniz ya da bir şekilde o menüyü, metin seçmeyi bırakmadan kapatacaksınız. Dolayısıyla hızlı bir şekilde Ctrl+C ile kopyalama yapamıyorsunuz. Belki "işleri kolaylaştırmak için bir menü yapalım" gibi bir mantık yürütmüş olabilirler ama bir metni seçtikten sonra Ctrl+C ile hemen kopyalama yapamıyor olmak benim işime taş koyuyor.

    Ekleme:

    ilk sorununun çözümü basit. ayarlar>tercihler>gelişmiş>araç çubukları altındaki "İçerik menüsünü açmak için metnin üzerinde çift tıklayın" kutucuğundaki işareti kaldırman halinde ctrl+c kullanımında sorun yaşamazsın. http://gyazo.com/03b88456551a3f74badb180247e00d9d

  • Kapanmıyor
  • Bir bug olabilir. Bilemiyorum. Operayı kapatalı yeterince vakit geçti fakat Görev Yöneticisi'nde hala 400MB kadar bir bellek harcayan Opera'yı görüyorum. En Opera, ne yapıyorsun?

  • Varsayılan Tarayıcı
  • Nezaketen bile olsa "Ben kendimi varsayılan yapayım mı?" diye sormayan bir tarayıcı, Opera. Yüklüyorsunuz ve bir de bakıyorsunuz ki varsayılan tarayıcınız oluvermiş. İnsanın aklına geliyor: "İyi de, bana sordun mu?"

  • Tüm URL'i Gizleme
  • Hangi mantıkla bunun yapıldığını da merak ediyorum ama bir sayfada dolaşırken Opera o sayfanın parametrelerini görmenize izin vermiyor. Örneğin bir Youtube videosu izlerken o videonun URL'ine bakarsanız sadece youtube.com/watch görürsünüz. Daha fazlasını görmeniz için adres çubuğuna tıklamanız gerekiyor. Yani işi uzatıyor.

    Ekleme:

    tüm url'yi görmek içinse, adres çubuğunun hemen solundaki dünya simgesine sağ klik yaparak "tüm adresi göster" kutucuğunu işaretlemen yeterli. http://gyazo.com/95e57387fa0c4937aadee583780cbf26

Bunlardan beşka Chrome'da alıştığım için eksikliğini hissettiğim birkaç özellik var. Bunlardan dolayı Opera'yı suçlamıyorum ama yapsalar fena olmazdı;

  • Yeni Sekmede Ara
  • Bir metni seçip sağ tıkladığımızda "Ara" seçeneğini görüyoruz fakat bu arama aynı sekmede yapılıyor. Dolayısıyla içerik gidiyor. Halbuki Chrome'daki gibi yeni sekmede arama yapsa daha uygun olur.

    Ekleme:

    seçili metni sağ klik yaparak yeni sekmede aramasını sağlamak içinse "ara"ya tıklama esnasında shift tuşuna basılı tutmak işe yarıyor. ben öyle hallediyorum

    Diğer bir yorum:

    yeni sekmede arama yapabilmek için ayarlar>tercihler>gelişmiş kısmından "açık sekmeyi yeniden kullan" tikini kaldırman yeterli

  • Tab ile arama
  • Bir sayfada arama yapılabiliyorsa o sayfaya gitmeden, doğrudan URL yazdığımız yere, yani adres çubuğuna arama kelimelerini girmemiz güzel bir özellik olurdu. Örneğin seslisozluk.com sitesine girin, en az bir arama yaptıktan sonra Chrome artık sesslisozluk sitesinde doğrudan arama yapmamıza izin veriyor. Fakat ne Firefox'da ne Opera'da bu özelliği göremedim.

Şimdilik bu kadar. Kullandıkça belki daha fazlasını yazarım.

SQL JOIN

Regex gibi ne kadar öğrenirsek öğrenelim bir gün unutabileceğimiz, karıştırabileceğimiz SQL JOIN'leri. Eray Alakese paylaşmış, ondan alıntı yaptım.

Kaynak: http://erayalakese.com/artik-joinleri-karistirmazsiniz/

Eclipse J2EE Kullanıcıları İçin Kurulum Tavsiyeleri

eclipse logo

Bu yazı aslında basitçe "Kendime Not" kategorisinde. Benzer ihtiyaçlara sahip geliştiriciler de bu tavsiyelerden yararlanabilirler düşüncesiyle paylaşıyorum.

  1. Organizasyon
  2. Eclipse Ayarları
  3. Eclipse Plugin'leri

Organizasyon

Genel anlamda Java Enterprise Edition (J2EE) platformu üzerinde yazılım geliştiriyorum. IDE olarak Eclipse kullanıyorum. Son sürüm olduğundan burada yer vereceğim bilgiler Indigo hakkında olacak. Öncelikle birden fazla tipte geliştirme tipi için Eclipse kullanıyorsanız başlangıçta şuna benzer bir dosya yapısı oluşturmanızı öneririm:

  • work
    • eclipses
      • eclipse-j2ee
      • eclipse-android
      • eclipse-scala
      • eclipse-php
    • workspaces
      • workspace-j2ee
      • workspace-android
      • workspace-scala
      • workspace-php

Bu tipte bir dosya yapısında, her birini ayrı ayrı tutmak şu bakımdan önemli: Eclipse herbir plugin için kaynak tüketiyor. Bu yüzden Android ile ilgili geliştirme yaparken J2EE araçları gereksiz olarak bilgisayarı yavaşlatıyor. Benzer şekilde Scala için ayrı bir plugin Android geliştirmede yavaşlık sebebi. PHP ile çalışacaksanız da Java IDE'si plugin'leri tamamen alakasız olacaktır. Eclipse zaten geleneksel anlamda aşina olduğumuz bir kuruluma (setup/install gibi bir yapıya) sahip değil. exe dosyasını çalıştırıyorsunuz ve bir portable program olarak çalışıyor. Bu yüzden ben sabit diskimde bir klasör açıyorum, adını da eclipses ya da buna benzer bir şey koyuyorum. Aynı şeyi workspace'ler için de yapıyorum. Bunların hepsini de Work adlı bir klasöre koyuyorum (son tavsiye için Grombell'e teşekkürler).

Hazırlıkları yaptıktan sonra Eclipse Indigo J2EE 64bit sürümünü indiriyorum. http://www.eclipse.org/downloads/
İndirdiğim Eclipse'i de ilgili klasörüme açıyorum (unzip)

Eclipse Ayarları

  1. Eclipse için normalden biraz daha fazla kaynak ayırmamız daha hızlı ve sinirsiz yazılım geliştirme açısından önemlidir. Bunu da eclipse.ini dosyasını açıp Xmx değerini varsayılanın üstünde vererek yapabiliriz. Bilgisayarınızın RAM'ine bağlı olarak 1024, 2048 ya da buna benzer bir değeri MB cinsinden yazabiliyoruz. eclipse dosyasını açıp en sona şu satırı ekliyoruz:
     -Xmx2048m 
  2. Eclipse açılırken Workspace'i sorduğunda, daha önceden organize ettiğimiz şekilde ilgili klasörü gösterip default olarak bunu algılasın diye "bir daha sorma"yı işaretliyoruz.
  3. Karakter kodlamasını (Character Encoding) UTF-8 olarak ayarlıyoruz (Bu yazımda anlattım)
  4. Hangi dil olursa olsun "Spelling" özelliği rahatsızlığından kurtulmak için;
    Window - Preferences'e girip General > Editors > Text Editors Spelling'den "Enable Spell Checking"i kaldırıyoruz.
  5. JDK1.6 -1.7 Karmaşası...
  6. Bazen projelerimiz tamamen 1.6 ile çalıştırılabilir oluyor fakat varsayılan ayarlar 1.7 kullandığından sorun çıkarıyor ve bu sorun tam olarak da belli olmuyor. En iyisi işlere girişmeden evvel JDK1.6'yı varsayılan hale getirmek. 1.7 ile çalışacağımız zaman da buna göre değişiklik yapmayı unutmayalım.

Eclipse Plugin'leri

  1. Subclipse
  2. SVN için kullanılacak plugin Subclipse. http://subclipse.tigris.org/

  3. m2eclipse
  4. Maven için kullanılacak plugin m2eclipse. Help > Install New Software'den Indigo'yu seçtiğimizde bir miktar zaman geçecek. Yükelmesi zaman alıyor ama sonunda Collaboration başlığı altında m2eclipse - Maven Integration for Eclipse'i görebiliriz.

  5. EGit
  6. SVN yerine/ile beraber Git kullanacağımız plugin EGit. m2eclipse'de yaptığımız şekilde EGit'i bulup yükleyebiliriz.

Eklemek istediğiniz, beğenmediğiniz ya da iyi ki yazmışsın dediğiniz şeyler varsa, yorumlarınızla katkıda bulunabilirsiniz, yazıyı paylaşıp destek verebilirsiniz.

Sayfalar

Subscribe to hoşaf.org RSS