Posted on Temmuz 10, 2009 by yugruk
Yıllardır hayalini kurduğum bir şey vardı, yaptırım gücü çok yüksek olan bir firmanın Linux’u temel alan bir işletim sistemi geliştirmesini istiyordum en sonunda Google hayalimi gerçeğe dönüştürecek gibi görünüyor.
Neden Linux’u güçlü bir firmanın geliştirmesini istediğime gelirsek : Biz Linux sevenler ne kadar çırpınsak da piyasa para ile dönüyor ve bu da Linux’a “piyasanın” kendi işine gelen kısımları ile ilgilenmesine neden oluyordu, örneğin nvidia ekran kartı sürücülerini Linux için daha önce hiç yapmazken şimdi windows sürümü kadar güncel tutuyor.
Bu noktada Google gibi güçlü bir firma domino etkisi yaratacaktır ve firmaların artık Linux temelli bu işletim sistemini de hedef almasına neden olacaktır ki bu bütün Linux temelli sistemleri etkiler. Domino etkisine kapılacak firmalar ilk olarak donanım firmaları olacaktır ardından uzun vadede başarı sağlanırsa Adobe gibi tasarım yazılımı geliştiren ve windowsu windows yapan (hatta Adobe Maci mac yapan yegane firmadır bkz : Dünya genelinde tasarımcılara Mac kullanmaları önerilir) firmaların etkilenmesini bekliyorum.
Eğer bu gelişmeler gerçekleşirse ve Goole Chrome OS başarılı olursa Linux dünyasını güzel günler bekliyor demektir
Kategorisi: Bilgisayar, Google, Linux | Leave a Comment »
Posted on Haziran 12, 2009 by yugruk
Windosta bir bilgisayara 2. tomcat kurmak gerekli olduğunda tomcat servis olarak kurulmalıdır. Servisi kurmak için tomcat/bin dizini içindeki service.bat scripti kullanılır.
scriptin kullanımı şu şekildedir : service.bat install servisAdi komutunu konsolda verirseniz servisAdi ile belirttiğiniz servis adında bir servis yaratılır.
Burada dikkat edilmesi gereken nokta servisAdi hiç bir şekilde alfa numerik karakter içeremez yani belirlediğiniz harf sadece a-z,A-Z,0-9 aralığında olmalıdır.
servisi kurduktan sonra tomcati başlatmak isterseniz şuna dikkat etmelisiniz bir tomcat tomcat/conf içinde yer alan server.xml deki konfigurasyona göre dinleme (listen) yapar yani 1 ip + port eşleşmesinde de 2 tomcat olmaz yani 2 tomcat 192.168.1.1 port 80 de yer alamaz. ya 2 IP adresiniz olmalı ya da 1 tomcat 80 dışında bir porta kurulmalı.
Ayarlamayı server.xml dosyasında gerçekleştirdikten sonra servis yöneticisinden tomcatleri başlatabilirsiniz.
Tomcatler aynı klasörleri kullanabilir ama tavsiyem farklı tomcat klasörleri kullanmanız.
Kategorisi: Java | Leave a Comment »
Posted on Mayıs 5, 2009 by yugruk
JPA’da stored procedure çağırmak için yapılması gereken şey EntityManager nesnesinin createNativeQuery fonksiyonunu kullanmaktır.
Query q = getEM().createNativeQuery("{call sp_myProcedure(?)}", Nesne.class);
q.setParameter(1 , param1);
liste = (List) q.getResultList();
ya da
nesne = q.getSingleResult();
Üstteki kod bloğunda getEM() ile EntityManager nesneni almalısınız yani getEM() fonksiyonunu siz yazacaksınız. Nesne.class geriye dönecek olan resultset’teki alanları kullanarak oluşturulacak nesnenin tipi.
Geriye 1 sonuç dönecek ise q.singleResultSet birden fazla dönecek ise getResultSetList fonksiyonunu kullanmak gerekli.
Kategorisi: JPA, Veritabanı | Leave a Comment »
Posted on Nisan 27, 2009 by yugruk
Browser side cache yapılan işlemlerin sonuçlarının bir değişken ya da dizi içinde saklanmasıdır. En çok ajax yanıtlarının cachelenmesinde ve matematiksel işlemlerin sonuçlarının cachelenmesi için kullanılır. Eğer basit düşünürseniz olayı uygulamak ço kolaydır, 1 değişken oluşturup yaptığınız bir ajax isteğinin sonucunu değişkene atadıktan sonra işlem yaparsınız.
Örn :
var cache;
ajaxCall(,,ajaxHandler);
ajaxHandler(resp){
cache = resp;
//yanıt ile ilgili işlemleri
}
Cacheleme şu şekilde işe yaramaktadır, eğer 1 kere alınıp sonra aynı kalacağını düşündüğünüz alanlar var ise bu alanları cacheleyip bir daha almakla uğraşmazsınız, ya da bir işlemin sonucunu ajax ile alırsınız ve bir sonraki işlemlerde ajax çağrısı yerine cacheden alırsınız.
Gerçek bir örnek vermek gerekirse, daha önceki projelerimde bir resime ait etiketleri ajax ile getirmem gerekli idi ve 1 kere alınması yeterli idi, 1 kere alıp cacheledim ve bir sonraki çağrıları cacheden aldım.
Kategorisi: javascript | Leave a Comment »
Posted on Nisan 27, 2009 by yugruk
Linuxta C de yazdığını programları link ederken bazen “xxxx library is not found” hatası alırsınız. Bu hatanın adından da anlaşılacağı gibi “xxxx” kütüphanesi bulunamadı demektir. Tabi bulunamamasının 2 sebebi olabilir kütüphane ya makefile dosyasında belirlenen yollar içinde değildir ya da sisteme yüklenmemiştir.
Yüklenip yüklenmediğini anlamak için “/usr/lib”, “/usr/share/lib” gibi klasörlerin içinde “xxxx” adını arayın bulursanız bu o kütüphanenin yüklendiği ama derleme sırasında görülemediği manasına gelir.
Onu görünür hale getirmek için “/usr/lib” altında değil ise “/usr/lib” altına sembolik link oluşturabilirsiniz ya da ilgili .so ve .o dosyalarını “/usr/lib” altına taşıyabilirsiniz. Diğer bir yöntemde makefile dosyası ile haşır neşir olarak kütüphanenin yolunu eklemektir, makefile çok karmaşık olmasına rağmen aslında çok basittir sadece ilgilendiğimiz kelimelerin olduğu yerlere bakmak gerekli, bunlar “library path” benzeri kelimelerdir.
Eğer makefile ve “/usr/lib” altına taşıma işlemi de fayda etmez ise en garanti yol şudur : kütüphaneye ait .o, .so dosyalarını dermele yaptığınız dizine kopyalamak. Bu en son yöntemdir ama garanti işe yarar çünkü görmemesi imkansızdır.
Kategorisi: GCC, Linux | Leave a Comment »
Posted on Mart 30, 2009 by yugruk
ZK tamamen ajax’ı destek alan ve eventları server tarafında çalıştırmayı hedefleyen bir framework’tür. ZK gerçekten çok ilginç bir framework çok kolay geliştirme yapılabiliyor, masaüstü programı yazar gibi program yazıyorsunuz.
ZK Mozilla’nın XUL tanımlama sistemini örnek alarak geliştirilmiş ve bu yüzden anlaşılması çok kolay. Elbette her framework’un olduğu gibi ZK’nın da zayıf gibi görünen yanları var mesela en çok kritiği yapılan olay event handling kodlarını server tarafına yığması ki bu servera yük bindiren bir olay ki günümüzde bilgisayarlar çok hızlı iken bu saçma bir girişim gibi görünebilir.
Ben bir kaç deneme yaptım açıkçası çok hoşuma gitti ama ben kodlarımı mümkün olduğunca istemci tarafında çalıştırmak istediğim için event handling kodlarını javascript ile ele almayı tercih ediyorum.
link : http://www.zkoss.org
Kategorisi: Kategori Yok | Leave a Comment »
Posted on Mart 5, 2009 by yugruk
Web2.0 tarzı web applikasyonları için javascript ile geliştirme yaparken karşılaşılma ihtimali en yüksek olan sorunlardan biri javascript yüklenme süresidir. Geliştirme yaparken <javascript src=”" şeklinde js dosyasının tanımı yapıldığı zaman tarayıcı o js dosyasının indirip çalıştırıncaya kadar sayfanın akışını bekletir (her tarayıcı özellikleri farklıdır, bazı tarayıcılar js dosyalarını paralel olarak indirip çalıştırma işlemini sıra ile yapar). Bu bekleme anları uzun sürerse sayfa gösterimi gecikeceği için yazdığını web applikasyonu yavaş çalışıyor damgası yiyecektir.
Javascriptlerin bu tür sorununa çözüm için Lazy loading tekniği geliştirilmiştir. Lazy loading javascript dosyalarının yüklenmesini ileriki bir zamana atarak sayfa gösterimini hızlandırmayı amaçlar. bir javascript dosyası siz istemediğiniz sürece yüklenmez böylece daha hızlı sayfa yüklemesi ve daha kullanışlı bir applikasyon ortaya çıkar.
Örneğin aşağıdaki kod sayfa yüklendikten 100ms sonra js dosyasını yükletir ve çalıştırır
<html>
<head>
<script>
function loadAndRun(jsName){
var head = document.getElementsByTagName("head")[0];
script = document.createElement('script');
script.type = 'text/javascript';
script.src = jsName;
head.appendChild(script);
}
window.onload = function(){window.setTimeout(function(){loadAndRun("test.js");}, 500);}
</script>
</head>
<body>
</body>
</html>
Aşağıda test.js dosyasının içeriği var.
alert('i am test.js');
Yukarıdaki test kodları çalıştırıldığı zaman sayfa onload olduktan 500ms sonra test.js yüklenir ve çalıştırılır. bu özelliği kullanarak daha sonra da yüklense olur dediğiniz js dosyalarını bu şekilde yükleyebilirsiniz.
Eğer lazy load işinize yarayacak ise tavsiyem hazır fonksiyonlar ya da kütüphane kullanmanız böylece lazy load işleminden daha çok verim alırsınız.
Kategorisi: Kategori Yok | Leave a Comment »
Posted on Şubat 27, 2009 by yugruk
Windows dünyasından admin’ler her zaman linux’taki konsolları ve ne kadar zor iş olduğunu anlatırlar, windows’ta GUI güdümlü ayarlama sistemleri sayesinde her işlerini kolayca yaptıklarını anlatırlar
(kimse alınmasın ama öyle)
Linux adminleri konsolu sevmekle beraber gözü kara değiller ve işleri GUI güdümlü ve hızlıca halledebilmek için webmin adı verilen web tabanlı ayarlama yazılımını kullanırlar.
Webmin sayesinde linuxa sıfır kişiler bile ayarlamaları kolayca yaparlar. Linux üzerinde uzman olsanız da webmin gerçekten çok işe yarayabiliyor.
link : http://www.webmin.com/
Kategorisi: Kategori Yok, Linux | Leave a Comment »
Posted on Şubat 20, 2009 by yugruk
Ajax patternleri Javascript programlama yaparken sıkça karşılaşılan sorunlara çözüm getirmek amacı ile oluşturulmuştur ve Javascript ağırlıklı çalışacak web applikasyonlarında hayat kurtarıcı ve zamandan kazandırıcıdırlar.
Çeşitli patternler vardır bunları şu şekilde listeleyebiliriz :
- Lazy Loading
- Browser side cache
- XML, JSON Message
Daha bir çok pattern vardır fakat bunlardan en önemlileri yukarıda saydıklarımdır, çünkü en sık karşılaşılan sorunlara çözümler sunmaktadır.
Bu design patternleri ile ilgili detaylı ve örnekli kodlar hazırladım ve sıra ile anlatacağım eğer en gereksiz patternleri bile bilmek isterseniz http://www.ajaxpatterns.org sitesine bakmanız öneririm.
Kategorisi: javascript, İnternet | Leave a Comment »
Posted on Şubat 17, 2009 by yugruk