Google Video Arama - Gaudi

#

Cmt, 20 Eyl 2008 19:15:40

Google artık videoları da konuşma içeriklerine göre dizine alabilecek.
Google-Audio-Indexing yada diğer adıyla "Gaudi"
film kayıtlarındaki dili kendi başına çözebiliyor ve dizine alabiliyor.

GoogleLabsBu teknik ile arama yapılabilen ilk videolar şu an için sadece ABD politikacılarının seçim kampanyası için yaptıkları konuşmalardan ibaret. Mesela politikacıların yaptıkları konuşmalarda belli replikleri aratabiliyor ve bu sırada doğrudan aranan terimin bulunduğu kareye atlayabiliyorsunuz.

Arama hizmeti halen "Google Labs" aşamasında bulunuyor. Bir beta sürümün ne zaman çıkacağı ise henüz belli değil.
Denemek için Google'ın Gaudi sayfasını ziyaret edebilirsiniz.

2453 defa izlendi | Bu Bloga Yorum Yazın


HttpClient kullanarak OsCache cluster desteği

#

Paz, 06 Oca 2008 02:55:12

  Bu yazıda üzerinde uzun zamandır çalıştığım bir J2EE uygulamasında
 cache framework u olarak seçtiğimiz Oscache ve clustered bir yapıda
oscache in built-in 
 desteklediği jgroups-JMS clustering support yeteneğini kullanmak
 yerine HTTPClient kullanarak uyguladığım workaround dan bahsetmeye
 çalışacağım.
  Oscache jsp sayfalarını , servlet responselarını , 
 java nesnelerini cacheleyebileceginiz open source bir
 cache kütüphanesidir.
  oscache i clustered environment ta kullanabilmeniz için , 
 oscache içerisinde built-in gelen jgroups veya JMS ten bir
 tanesini seçmek durumundasınız.Benim seçimim konfigurasyonu
 kolay olan jgorups tan yana oldu (Bu arada JMS kullanabilmek
 için application server üzerinde JMS tanımı yapmak gerekmekte ,
 application server tarafında Tomcat değilde Weblogic yada
 Websphere gibi ticari bir ürün kullanıyor olsam ,
 sanırım bu ilk tercihim olurdu.)
 
  oscache - jgorups entegrasyonu icin yapmamız gereken tek şey
  (Oscache in cok zayıf dökümantasyonunda yazdığını söylüyorum) 
 
 
oscache.properties dosyasında yer alan aşağıdaki satırın
 commentinin kaldırılması ve jgroups-all.jar dosyasını
 class-path ' e eklenmesi.
  #cache.event.listeners=com.opensymphony.oscache.plugins.clustersupport.
 JavaGroupsBroadcastingListener
 
Elbetteki çalışmadı :) ,
 
 
burayı fazlaca uzatmadan bunun çalışabilmesi için yaptığımız
 konfigurasyona geçip ,

{



(route add -net 224.0.0.0 netmask 240.0.0.0 dev ETHERNET_CARD_NAME)
  komutu işletim sisteminde çalıştırılıp , oscache.properties dosyasına
  aşağıdaki satırı ekleyin.
   cache.cluster.multicast.ip=224.0.0.0
}


  Bundan sonraki kısım , bizim cluster desteği için uyguladigimiz 
workaround ile ilgili.


  oscache clustering destegini yanlızca cache teki nesnelerin 
 flush edilmesi(cache teki nesnenin ömrünün dolduğunun belirtilmesi)
 sinyalini cluster yapıdaki node lara broadcast yöntemiyle taşıyarak
 gerçekleştirmekte , bunun anlamı , cache te bulunan bir nesne ,
 bir makine da değiştiği zaman , bu nesnenin diğer makinalardaki
 cache lere taşınması söz konusu değil , taşınan yanlızca cache teki nesnenin
 çöpe atılması gerektiği sinyali.
  
 Bu basit clustering desteğini manuel elde edebilmek için ;
      ·         Uygulamaya yeni bir servlet ekleyin , (örn:CacheControler vs..)
      ·         Sistemden ürettiğiniz cacheInvalidate event larını , httpClient 
yardımı ile bu servletlere(tum clusterlara) taşıyın ,
 
·         Servlet içerisinde invalidate işlemini gerçekleştirin
  
 
·         Aşağıda bu işlemi gerçekleştirebilmek için yazmanız gereken kod
parçaları yer almakta , 
  
       *uygulama içerisinde cache invalidate event ları oluşturan kod
parçasında  yapılması gereken
            
    for(int i=0;i<clusterize;i++){
              HttpClient httpClient = new HttpClient();       
       PostMethod postMethod = new PostMethod(servletClusterUrl_i);      
       NameValuePair[] data = {        
              new NameValuePair("key", cache_key_name)};      
       postMethod.setRequestBody(data);      
       httpClient.executeMethod(postMethod);      
	}   
         
  
      *Servlet tarafında yapılması gereken
 
 
     try {
           String node = request.getParameter("key");
           if(node != null){
               if(node.equals("all"))
                    CacheAdmin.instance().getCacher().flushAll();
               else                              
                    CacheAdmin.instance().getCacher().flushEntry(node);
           }        
          }catch(Exception ex){
                                ExceptionHandler.logException(ex);       
          }
         }

  
  
    
  
      
  
  ** Tabi servletinizi güvenli bir alanda tutmayı unutmayın.
 

2525 defa izlendi | Bu Bloga Yorum Yazın


Uzerine.com  ©2005 Uzerine.com
Ana Sayfa | Bize Ulaşın | Gizlilik Sözleşmesi | Kullanım Şartları | Üye Girişi