Ver bana düşlerimi…

Gitmek kolay
Ya sonrası
Silebilir misin sende kalan
Dudaklarımın nemini

Atamazsın biliyorum
Sende solan yüreğimi

Ver bana düşlerimi
Ver bana eski gülüşlerimi
Yanarsın ah yanarsın
Verirsen bana kendini

JSP içinde listenin boyutunu bastırmak – JSTL & Spring

Spring controller katmanından HashMap aracılığıyla ekranda göstermek istediğimiz verileri map’e atarken liste verip de daha sonra JSP sayfasında bu listenin size(boyut/büyüklük)’ını bastırmaya kalktınızsa eğer mutlaka hata almışsınızdır.
Controller’dan gelen şöyle bir map’imiz olsun;

map ornek
Java
1
2
3
4
Map map = new HashMap();
List ornekListe = null;
ornekListe = ornekDAO.getOrnekListe(arg1, arg2, ...);
map.put("listem", ornekListe);

yukarıda controller’da tanımladığımız listeyi JSP içinde;

ornek JSP sayfasi
XHTML
1
Liste boyutu: <c:out value="${listem.size}" />

dersek, böyle bir attribute olmadığında dair hata alırız. Bu listenin boyutuna iki şekilde ulaşıp ekrana bastırabiliriz.

  1.  map içine listenin boyutunu ekleriz. Bunun çok doğru bir çözüm olduğunu düşünmüyorum!(?)
  2. yöntem ise direkt JSP içerisinde JSTL taglerini kullanarak bu işi halledebiliriz. Nasıl mı? Cevap aşağıda;

Öncelikle JSP sayfamızın tepesine ilgili JSTL tagini kullanabilmek için ilgili taglibi ekliyoruz;

jstl-functions
XHTML
1
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>

Bundan sonraki aşama ise;

liste boyutu
XHTML
1
Liste boyutu : <c:out value="${fn:length(listem)}" />

diyerek listemizin boyutuna ulaşmış oluyoruz.

Happy coding :p

Flört – Aşka Dair

JavaScript ile BlackBerry versiyon bulma

Olmasını istemem ama oldu da BlackBerry ile cebelleşmek durumunda kaldınız ve 6.versiyonun aşağısındaki işletim sistemlerinde çoğu şeyi desteklemediği için kısıtlamalarda bulunacaksınız. Bunun için öncelikle BB’nin versiyonunu öğrenmeye gerek duyacaksınız. Aşağıdaki ufak kod parçası işimizi görecektir.

BlackBerry versiyon bulma
JavaScript
1
var agent = /BlackBerry\w+\/([\d\.]+)/i.exec(navigator.userAgent);

Eğer sadece yukarıdakinin sonucuna bakacak olursak, örneğin;

ornek userAgent degeri
1
BlackBerry9000/5.0.0.554,5.0.0.554

gibi bir değerle karşılaşmış olacağız.
Bizim işimize yarayacak olan kısım 5.0.0.554 değeridir. Bu değeri de;

BlackBerry versiyon
JavaScript
1
var versiyonDegeri = agent[1];

kod parçasını kullanarak elde etmiş oluyoruz.

Happy coding ;)

Moment.js – javascript date library

Moment.js; tarih işlemleri için kullanımı kolay, hafif(development-18.2kb, production-2.6kb) bir javascript kütüphanesidir. Kütüphaneyi bu adresten indirebilirsiniz. Aşağıda kullanımıyla ilgili örnekleri de ekliyorum.

1
2
var now = moment();
console.log(now.format('dddd, MMMM Do YYYY, h:mm:ss a'));

Bu kodun çıktısı şu şekilde olacaktır;

1
Wednesday, November 23rd 2011, 3:34:45 pm

1
2
var halloween = moment([2011, 9, 31]); \\ October 31st
console.log(halloween.fromNow());

Çıktısı şu şekildedir;

1
24 days ago

1
2
var now = moment().add('days', 9);
console.log(now.format('dddd, MMMM Do YYYY'));

Çıktısı;

1
Friday, December 2nd 2011

1
2
3
var now = moment();
moment.lang('fr');
console.log(now.format('LLLL'));

Çıktısı;

1
mercredi 23 novembre 2011 15:34

Not: Farklı dil seçeneklerini kullanmak için; örneğin Türkçe için, tagi arasına  koyduktan sonra, tr.js adında bir dosya açıyoruz, aşağıdaki kodu yapıştırıp Türkçe’ye çeviriyoruz :)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
moment.lang('fr', {
months : "Janvier_Février_Mars_Avril_Mai_Juin_Juillet_Aout_Septembre_Octobre_Novembre_Décembre".split("_"),
monthsShort : "Jan_Fev_Mar_Avr_Mai_Juin_Juil_Aou_Sep_Oct_Nov_Dec".split("_"),
weekdays : "Dimanche_Lundi_Mardi_Mercredi_Jeudi_Vendredi_Samedi".split("_"),
weekdaysShort : "Dim_Lun_Mar_Mer_Jeu_Ven_Sam".split("_"),
longDateFormat : {
L : "DD/MM/YYYY",
LL : "D MMMM YYYY",
LLL : "D MMMM YYYY HH:mm",
LLLL : "dddd, D MMMM YYYY HH:mm"
},
relativeTime : {
future : "in %s",
past : "il y a %s",
s : "secondes",
m : "une minute",
mm : "%d minutes",
h : "une heure",
hh : "%d heures",
d : "un jour",
dd : "%d jours",
M : "un mois",
MM : "%d mois",
y : "une année",
yy : "%d années"
},
ordinal : function (number) {
return (~~ (number % 100 / 10) === 1) ? 'er' : 'ème';
}
});

İyi çalışmalar ;)

SQL sorgusu ile yineleyen(mükerrer) kayıtları bulmak

Bir tablodaki tekrarlayan yani 1′den fazla kere girilmiş kayıtları bulmak için aşağıdaki SQL sorgusunu kullanabiliriz. Örnek olarak USERS tablosundaki 1′den fazla kere geçen EMAIL adreslerini bulalım:

1
2
3
4
5
SELECT email,
COUNT(email) AS TekrarlamaSayısı
FROM users
GROUP BY email
HAVING ( COUNT(email) > 1 )

Aşağıdaki sorgu ise aynı email’i sadece 1 kez içeren kayıtları getirecek. Yani email adresi yinelenmeyen kayıtların listesi dönecek.

1
2
3
4
SELECT email
FROM users
GROUP BY email
HAVING ( COUNT(email) = 1 )

Not: Yukarıdaki tablo ve kolon adlarını kendinize göre ayarlamayı unutmayın ;)
Kaynak: petefreitag.com

Back to the Start!

Coldplay’in The Scientist şarkısı eşliğinde güzel bir animasyon olmuş. Aslında animasyon çok anlamlı. Herşey teknolojikleştikçe en başa dönme isteğimiz mi artıyor nedir anlayamadım. Çünkü herkesin dilinde bir emekli olsam da bağla bahçe ile uğraşsam sözcükleri dolanıp duruyor.

Biz bile öyle değil miyiz? Genç yaşımıza rağmen Ege kıyılarına ya da köylerine kaçma isteği şimdiden hayallerimizi süslemiyor mu?

Kelimelerini değiştir, dünyanı değiştir! – Change your words, change your world!

Güzel ve etkileyici bir kısa film çalışması olmuş. Gerçekten de bu filmde olduğu gibi anlatımlarımızda kelimeleri farklı bir biçimde kullansak etkileyiciliği daha mı artıyor? Bu kısa filmde adamın “Benim tabelama ne yaptın?” sorusuna karşılık, bayan “Aynısını yazdım, ama farklı kelimelerle…” diye cevap veriyor ya, birine “Geri dön!” dediğimizde gelmiyorsa geri bu etkiyi bu filmdeki gibi yaratacak hangi kelimeleri seçebiliriz ya da gerçekten de bu etkiyi farklı kelimelerle verebilir miyiz?

MacBook Pro – Kısayollar #1

Selamlar, uzun zamandır blogumla ilgilenemedim. Bir sürü ıvır zıvır iş, zorunlu yapılması gereken görevler, isteksizlik vs. vs. nedenlerden dolayı buraları ihmal ettim uzunca bir süre.

Bu arada kendime yeni bir laptop alayım dedim, bir anda MacBook Pro alırken gördüm kendimi :) Neyse işin geyik kısmını geçeyim. Mac için yeni bir kullanıcıyım daha önce hiç kullanmamıştım, bu yüzden birçok şeyi yeni yeni öğreniyorum. Özellikle daha önceden alıştığım kısayollar burada pek işe yaramayınca nasıl olur onları araştırıyorum aklıma geldikçe. Şimdilik 2 tane aklıma gelen kısayol var bunları hem unutmayım hem de benim durumumdakiler görsün diye buraya yazıyorum.

  1. Kısayol tuşuyla masaüstünü gösterme (windows’taki win+d tuş kombinasyonu) mac’te fn+f11 tuş kombinasyonunda bulunuyor (bildiğim kadarıyla daha sonra bunları kendi isteklerinize göre şekillendirebiliyorsunuz, ama henüz ben yapmadım default gelen tuşları araştırdım).
  2. Klavyeden url tamamlama (yazılan adres sonuna .com ekleme) windows’ta ctrl+enter tuş kombinasyonunda bulunurken mac’in default ayarlarında kntrl+cmd+enter tuş kombinasyonunda geliyor.

Herkese mutlu günler dilerim ;)

 

Bir şarkı tut…

Gel benim kararsızım
Kalbe ziyan amansızım
Karda kışta boranlarda
Bana inat havalarda gel

Gün geceyle barışırken
Zor günlere alışırken
Bulutlandım dağlandım
Tam güneşe kavuşurken

Biri kaldı biri gitti
Biri yalnızlığı seçti
Bu masal da burda bitti
Vay gönlüm vay

Bir şarkı tut senin olsun
Bir şarkı tut benim olsun
Yalnızlık yalnızlıktır
Zor dayanıyorum

Bir şarkı tut senin olsun
Bir şarkı tut benim olsun
Yalnızlık yalnızlıktır oy
Vay gönlüm vay

Gel benim kömür gözlüm
Hem kara hem yalan sözlüm
Gidenler dönmez oldu
Ben bu derde böyle düştüm

Hani içinizdekileri anlatmak istersiniz anlatamaz, dillendiremezsiniz ya da anlatacak kelime bulamazsınız ya birileri çıkıp birşeyler karalar içinde kendinizi bulursunuz, sanırım bu şarkı da öyle birşey. Tam olarak anlatamasa da içimdekileri kendimden birşeyler buluyorum bu şarkıda, biraz hüzünlü ama yine de güzel. Keyifle dinleyin…