11 Eylül 2012 Salı

RHCP'yi Türkiye'de İzlemek de Varmış

Fazla konser kültürü olmayan ve konserlere de çokça gitmeyen ben, son yıllarda 'Kim gelse gözüm kapalı giderim?' diye düşündüğümde ilk aklıma gelen isim hep RHCP oluyordu nedense. Her şarkısını bilmesem de, çok yakından takip etmesem de bu adamlara vereceğim paranın hakkını fazlasıyla alacağımı biliyor ve çok istediğim bir hayali gerçekleştiriyor olacaktım. Ve sıkça, 'Bu sefer gelecekler' dedikoduları altında geçen yıllardan sonra gerçekten geldiler. 8 Eylül 2012 tarihinde Red Hot Chili Peppers'ı ülkemizde, İstanbul'da ağırladık.


Son albümlerinde ölesiye severek dinlediğimiz şarkıların yaratıcılarından Frusciante'nin olmaması belki bir eksiklik olacaktı fakat sonrasında izlenen konser videolarından belliydi her şeye rağmen iyi olacağı. Zaten benimle birlikte gelen kişilere de sürekli aktardığım gibi, adamlar, bir Madonna, bir Michael Jackson tarzı show adamı değiller. Öyle uçan kaçan hareketler de olmayacaktı. Müziklerini ana amacım olarak belirleyip gidiyordum sadece. Bu anlamda hiçbir hayal kırıklığı yaşamadan ayrılacağım hemen hemen kesindi ve nitekim de öyle oldu. Belki bu işlerden başkaları kadar anlamamdan kaynaklı, belki adamları çok sevdiğimden kaynaklı fakat bence inanılmaz bir konser oldu. Adamların 50 yaşına geldiklerine inanmak gerçekten zor.

Tüm organizasyon saçmalığını da içine katarak bir kere daha olsa yine gözüm kapalı giderim diyor ve detaylara geçiyorum:

  • Gitmeden ipoduma doldururken düşündüğüm gibi, bize yakın bir coğrafyada bulunan Yunanistan'daki setlist çaldılar. Belki bir Otherside ya da Snow bekliyordum fakat ikinci sırada gelen Can't Stop ile olay rengini verdi. Biraz üzüldüm belki fakat 5 saniye sürmedi diyebilirim.
  • Belki konserlerini daha önce çok izlemememden kaynaklı fakat Dosed'un girişini çaldıklarında içimde kelebekler uçuştu fakat sonra öğrendim ki konserlerinde zaten bu şekilde ucundan koklatıp çalmıyorlarmış. Olsun, Under The Bridge de benim için oldukça kafi oldu:)
  • Josh Klinghoffer, Türk bayraklı tshirt'ü ile gönülleri fethetti. Bence oldukça da başarılı çaldı fakat özellikle Californication solosunda Frusciante'ninkileri hatırlayınca oldukça vasat geldi diyebilirim. Onun dışında adam 10 numara çaldı. Özellikle kırık ayakla bile ayağa kalkıp eşlik etmeye çalışması, bis için sahnenin yarısına koltuk değnekleriyle gelip onları atarak yerine geçmesi falan inanılmazdı.
  • Flea'nın görüntü yakından 80 yaşında gibi fakat adam yemin ediyorum benden genç durumda; o amuda kalkma nedir arkadaş, bas performansına zaten bi lafım yok. Zaten konserde iletişim konusunda zayıf olan Anthony yerine grubun kitle ile yegane iletişimini sağlayan kişi konumundaydı. Ezan ile ilgili söyledikleriyle seyirciyi bir kere daha coşturdu.
  • İlhan Erşahin ise bonusumuz oldu. Fakat kendi adıma söyleyeyim, sahnede o kişiler varken hiçbir şekilde dikkatimi çekemedi. Zaten bence oldukça tutuktu da.


  • Hemen hemen herkes ses sistemine laf etmiş fakat ben hiçbir problem hissetmedim. Can't Stop'un başlarında basların fazla gelmesi ile ilgili bir ayar çekildi gibi geldi bana, zira ondan sonra tertemizdi ses. Bilemiyorum belki de kulağım alıştı o an. Ama konseri, fazladan bir hoparlör seti olan sol taraftan izlemek oldukça akıllıca bir tercih oldu diyebilirim. Kendi çektiğim intro videosu aşağıda (Kolona çok yakın olduğum için ses kötü fakat maksat ortam gözüksün.)


  • Çoğu kişi aşırı kalabalıktan ve sahneyi görememekten yakınmış. Açıkçası izlediğimiz yerden, 1.60'lık kız arkadaşım da oldukça rahat bir şekilde sahneyi izledi. Hatta iyi bir açı yakalamak için önümüze 1-2 metrelik boşluk bile açabildik. Tüm bunlar için sahneyi ortadan değil de biraz kenardan görmeyi tercih ettik tabi bu arada.
  • Ekranlar ve o ekranların kullanımı ise inanılmazdı. Adamlar her bir şarkı için canlı canlı klip çektiler. Sahneye uzak olanlar için konulan ekranlar yetersiz denmiş bilemeyeceğim fakat uzun boylu bir insan olarak diyebilirim ki sahnenin yüksekliği biraz fazla gibiydi.
  • Seyirci biraz zayıf gibi geldi bana, belki de herkesin bildiği ya da söylemek istediği şarkıların çalınmamasından kaynaklı fakat malum şarkılarda vaziyet oldukça iyiydi.
  • Gelelim organizasyona... İstanbul trafiği sağolsun zaten konser alanına gelmemiz zaman aldı. Sonrasında ucu gözükmeyen bir kuyruk vardı kategori 1 için. O kuyrığun başındaki az kalabalık ise kuyruk beklemeden içeri giriyordu, direkt olarak aynısını yaptık valla, bu konseri riske atamazdım. Bekleyenler neden bekliyordu onu da anlamış değilim hala.
  • İçeride felaket bir tuvalet kuyruğu vardı. Hayır alkol satılmadan vaziyet böyle ise satılsa ne olurdu orada düşünemiyorum bile.
  • Çıkıştan bahsetmek istemiyorum bile. Muhtemelen hayatımda RCHP'yi bir kez göreceğim diye tadını çıkarıp bitinceye kadar gitmek istemedim. Sonrasında haliyle izdihamda kaldık. Konser alanından, istiflenmiş balık modunda çıktıktan sonra geçmeyen otobüsler, dolu dolmuşlar, geçmeyen taksiler, geçip de durmayan taksiler eşliğinde farklı farklı yönlere yürüyüp durduktan sonra 23:40'da biten konserden tam bir buçuk saat sonra bir taksi bulabildik. Ankara otobüsünü kaçırmamak için Beşiktaş'tan Kavacık'a taksiyle geçtik vs. hatırlamak bile istemiyorum, bahsettikleri ringler falan neredeydi gerçekten merak ediyorum. Hayır zaten mekanın o kadar insanı kaldırmayacağı belli, bari çıkış için bir düzenleme yap. O konserin sonu böyle olmamalıydı gerçekten.

Herşeyi bir kenara bırakırsak, hayatımdaki en keyifli anlardan bir tanesiydi. En rezalet anlarıyla yine olacak deseler yine giderim. Californication ve By The Way'i canlı canlı dinlemek... Gerçekten anlatılmaz yaşanır bir duyguymuş. Yine beklediğim isimler var, yine gelecekler, yine izlemeye gideceğim fakat bende aynı etkiyi yaratırlar mı emin değilim. Harika konseriniz için tekrar teşekkürler, umarım hala bu enerjiye sahipken sizi bir kez daha görme imkanım olur...

rhcp, red hot chili peppers, istanbul, türkiye, santralistanbul, pozitif, californication, by the way, flea, ilhan erşahin )

16 Ağustos 2012 Perşembe

Servlet Web Service Endpoint '' Failure

Java ile web servis geliştirirken basit tipleri ve sınıfları kullanırken çok fazla problem yaşanmaz fakat kendi oluşurduğumuz sınıfları kullanmak istersek bir takım sorunlar yaşayabiliyoruz. Karşılaştığım  ve sebebini gerçekten çok zor bulabildiğim bir problemin çözümünden bahsedeceğim şimdi.

JAX-WS web servis oluştururken, daha önce başka bir projemde oluşturduğum bir sınıfı web servis metodunun dönüş nesnesi olarak belirledim. Fakat bu metodu yazıp projeyi derlemeye ya da çalıştırmaya çalıştığımda aşağıdaki hatayı aldım:

Error occurred during deployment: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.RuntimeException: Servlet web service endpoint '' failure. Please see server.log for more details.
/.../nbproject/build-impl.xml:725: The module has not been deployed.
See the server log for details.

Hata da çok fazla bir detay yok, derinlemesine koda girmem gerekti. Söylediğim gibi web servisler xml tabanlı olduğu için uğraştığınız sınıflarda herşeyin tanımlı olması lazım. Benim metodumda dönen sınıfın default constructor'ı tanımlanmamıştı. Bunu fark ettiğimde hemen bir cosntructor tanımlayıp denedim ve web servisin çalıştığını gördüm. Yani sorun, dönmek istediğim sınıfta default constructor olmamasıydı. Benim sınıfımda public olan başka hiç constructor yoktu dolayısıyla belki parametreli public constructor tanımlayarak da aynı şekilde çözüme gidilebilir.

( java, web servis, jax-ws, default constructor, illegalstateexception, lifecycleexception, endpoint, build-impl.xml )

23 Temmuz 2012 Pazartesi

android.database.sqlite.SQLiteMisuseException: error code 21

Merhaba,

Android tarafında karşılaştığım bir sorunu ve kısmi çözümünden bahsetmek istiyorum. Geliştirdiğim uygulamanın bir bölümünde SQLite bağlantısı yapıp veritabanına bir veri insert etmem gerekti. Bunu yaparken ilk önce SQLiteStatement kullanım parametreleri bind ederek kullanmak istedim. Bu şekilde parametreleri set edip executeInsert() metodunu çağırdığımda:
java.lang.RuntimeException: Unable to start activity ComponentInfo: android.database.sqlite.SQLiteMisuseException: error code 21: not an error
Şeklinde bir hata ile karşılaştım. Biraz araştırma yaptığımda öncelikle kaynaklarda, bu hatanın, birden çok threadin aynı anda veritabanı bağlantısı açıp kapaması esnasında olabildiğinden bahsediliyordu. Benim kodumda threadli bir yapı olmadığı gibi benzer bir kullanım da yoktu. Bu nedenle sorun bundan kaynaklı değildi. Sonrasında bir forumda başka bir arkadaş sorunun cihazın Türkçe set edilmiş Locale ayarlarından kaynaklı olabileceğini söylemişti. Bunu denemeye karar verdim. Cihazı İngilizceye çevirdiğim zaman sorun ortadan kalktı. Fakat kod tarafında bir şekilde Locale set ederek bu hatadan kurtulunmuyordu. Sonrasında kendi çözümümü ürettim. Belki bu soruna direkt olarak bir çözüm değil fakat benzer problemle karşılaşan arkadaşlar SQLiteStatement kullanmak yerine SQLiteDatabase sınıfının insert() metodunu kullanırlarsa bu sorunu çözebilirler. Tabi ki burada parametreleri artık ContentValues ile set etmek gerekecek. İlk başta belirttiğim gibi bu nedenle bu çözüm kısmi bir çözüm ama en azından hatadan kurtulabilirsiniz. 

Merak eden arkadaşlar için, hatayı aldığım cihazın gerekli bilgileri şu şekildedir:
Samsung Galaxy TabAndroid 3.2, Türkçe Locale  
( android, honeycomb, 3.2, sqlitemisuseexception, error code 21: not an error, sqlitedatabase, sqlitestatement, contentvalues )
Kaynak: http://stackoverflow.com/questions/9685633/sqlitemisuseexception-error-code-21-when-inserting-a-row 

2 Nisan 2012 Pazartesi

java.io.IOException: Server returned HTTP response code: 505 Çözümü

Glassfish üzerinde Java Web uygulaması geliştirirken bir adreste bulunan veriyi okumam gerekti. java.net.URL sınıfı ile bu URL'i okumak isterken başlıkta belirttiğim "java.io.IOException: Server returned HTTP response code: 505" hatasını aldım. Diğer parametrelerimde herhangi bir sorun gözükmemesine rağmen, özellikle localhost'da bulunan bir adresi çağırdığımda bu hata ile karşılaşmaya başladım. Biraz araştırma yaptıktan sonra sorunun URL'de geçen parametrelerin encode edilmeden URL'in çağrılmasından kaynaklı olduğunu buldum. Sorunun çözümü için ise yine aynı pakette bulunan URLEncoder sınıfını kullanmak yeterli. Bu sınıf içerisindeki encode() metoduna, encode edilmesini istediğiniz parametreyi ya da URL'in tamamını verip character encoding olarak da utf8 kullanmanız yeterli.
URLEncoder.encode("Test Parameter", "utf8");
URLEncoder.encode(myURL, "utf8"); 
( java, glassfish, url, encode, utf8, http 505, urlencoder, java.io.ioexception ) 

26 Mart 2012 Pazartesi

Netbeans’de Java Class Library Projesine JAR Ekleme

Farklı bazı projelerde kullanmak üzere bir takım sınıfları içeren JAR dosyası oluşturmak için Java Class Library projesini Netbeans kullanıcılarının büyük kısmı kullanmıştır. Oluşturulan projenin içerisine herhangi başka bir kütüphane eklemek istediğimizde bir problem yaşamadan ilgili JAR dosyasını kullanabiliyoruz. Fakat oluşturduğumuz projeyi build edip sonrasında oluşturulan JAR dosyasını başka bir projede kullanmak istersek bu sefer o proje içerisine eklediğimiz kütüphaneye ulaşamayız. Ulaşmaya çalışırsak ClassNotFoundException almamız ise muhtemel.

Buradaki temel problem aslında şu. Bildiğiniz gibi JAR dosyaları, içerisinde derlenmiş class dosyaları taşır. Bu nedenle bir projede rahatlıkla kullanılabilir. Fakat bir class library projesine bu JAR dosyasını koyarsak ve sonrasında projeyi build edersek JAVA class dosyalarını yeniden derlemeyecektir. Bu da bizim yeni üretilen JAR dosyamızın içerisinde, projeye eklediğimiz diğer kütüphanelerin olmaması anlamına gelecektir.

Sözü fazla uzatmadan konuya giriyorum. Yapmamız gerekenler şu şekilde. Projemizi tamamladıktan sonra build etmeden hemen öncebuild.xml dosyasının içerisinde bir değişiklik yapacağız. Böylece istediğimiz JAR dosyalarını içeren bir JAR dosyası elde edeceğiz. Örneğin projemize gson-2.1.jar‘ı ekleyelim. Bunun için build.xml dosyamızda aşağıdaki gibi bir değişiklik yapmalıyız. İlgili alanları kendi dosya isimleriniz ile değiştirebilirsiniz.

<target name="SON-JAR">
   <jar jarfile="dist/SON_DOSYA.jar">
      <zipfileset src="${dist.jar}"excludes="META-INF/*"/>
      <zipfileset src="lib/gson-2.1.jar"excludes="META-INF/*"/>
      <manifest>
         <attribute name="Main-Class"value="com.test.maktas.Main"/>
      </manifest>
   </jar>
</target>

Bu işlemden sonra projemizi build ettiğimizde çıkacak JAR dosyasında ilgili kütüphane dosyalarının da olduğunu göreceğiz.

( java, netbeans, jar, library, ClassNotFoundException, referring, java class library, jar inside jar )