2 Nisan 2011 Cumartesi

Apache SOLR

Popular, blazing fast open source enterprise search platform from the Apache Lucene project is a very powerful tool,especially for full text searching.



Recently Lucene and SOLR development is merged . Following this announcement, SOLR 3.1 is released and SOLR version number is synced with Lucene. Here is a small tutorial video about SOLR:


You can also check the latest reference guide from here.

You might want to watch the  interview with Grant Ingersoll, a Apache Lucene and Solr committer and co-founder of Lucid Imagination about the merging of Lucene and SOLR.

LINKS
Lucene and SOLR Merge
SOLR 3.1 is released
SolrCloud is on the way
Solr Reference Guide

28 Mart 2011 Pazartesi

HTML5 ile Web Artık Eskisi Gibi Olmayacak

Gün geçmiyor ki HTML5 ile gerçekleştirilen harika şeylerle karşılaşmayalım. İşte bunlardan bazıları:

http://sinuousgame.com/
http://www.effectgames.com/demos/canvascycle/
http://mozillademos.org/demos/planetarium/demo.html

Bunlara da bakmadan etmeyin:

https://demos.mozilla.org/tr/




Peki nedir bu HTML5, ne işe yarar derseniz?

https://developer.mozilla.org/en/Firefox_4_for_developers

2008'de bloguma düşdüğüm şu notton bu yana html5 epey bir yol katetmiş görünüyor:

http://bilgisayardunyam.blogspot.com/2008/11/html5deki-yenilikler.html

23 Mart 2011 Çarşamba

21 Mart 2011 Pazartesi

Developer Links of March 2011 / Mart Ayı Bağlantıları

Articles / Makaleler

Unit Tests 
When you ask a development team if they do unit testing, they always answer yes. When you dig, the meaning of the term “unit testing” is highly variable: manual tests specified by a document, automated testing of GUI, test of classes using a main()… Finally only few projects industrialize their unit testing with dedicated frameworks.
"If it ain't broke, don't fix it" vs. "Continuous improvement"  
Bert Lance said that “That’s the trouble with government: Fixing things that aren’t broken and not fixing things that are broken.” But what about the improvement and “change for the better”?!. If there’s a potentially worthwhile pay off, if it’s reasonably cheap to try, maybe it is well worth changing things that aren’t especially broken.
http://www.dzone.com/links/r/java_generics_tutorial_part_i_basics.html 
http://www.dzone.com/links/r/10_web_design_elements_that_you_shouldnt_overlook.html 
http://www.dzone.com/links/r/exposing_a_database_as_a_web_service_developercom.html


Tools / Araçlar :
http://initializr.com/ HTML5 Templates Generator

http://guryjs.org/ HTML5 Canvas Utility JS Library

http://www.sproutcore.com/ HTML5 Application Framework

http://www.jformer.com/demos/ Beautiful Forms with JQuery

http://treesaverjs.com/ Magazine Layout Framework

http://sass-lang.com/ Easy CSS

Technology / Teknoloji: 
http://click.apache.org/ Apache Web framework 
http://www.microsoft.com/web/webmatrix/ MS Web Matrix

JQuery
8 jQuery Methods You Need to Know 
Jquery Plugin: Expanding Image Menu 
Portfolio Zoom Slider with jQuery 
Sliding Door Effect 
Web Dev Tools 
8 Impressive Websites with Jquery Effects 
10 Cool Websites with Amazing jQuery Effects

Richfaces
RF4 Early Showcase 
RF4 in GoogleAppEngine 
RF4 Overview

Bağlantılar/Links
Web Dev Tools 
Cheat Sheets

15 Mart 2011 Salı

JSF 2 & Google App Engine

1.5 saatimi alsa da sonunda Google App Engine üzerinde basit bir JSF2 uygulaması çalıştırmayı başardım.


Sorunları çözmemde şu kaynakların oldukça yardımı oldu:

http://eriahit.wordpress.com/2010/01/19/gae-primefaces-spring-maven/
http://digitaljoel.nerd-herders.com/2009/12/21/jsf-2-0-2-and-google-app-engine/
http://javadocs.wordpress.com/2009/10/17/mojarra-jsf-2-0-rc2-and-google-app-engine-sdk-1-2-6/

1-) GAE ile JSF2 arasında bazı uyuşmazlıklar olduğu için jsf kütüphaneleri olarak aşağıdaki libleri kullanın:
http://joshjcarrier.googlecode.com/svn/trunk/Sun%20JSF%20GAE/jsf-impl-gae.jar
http://joshjcarrier.googlecode.com/svn/trunk/Sun%20JSF%20GAE/lib/jsf-api.jar

2-) Aşağıdaki hata için belirtilen çözüm yolunu uyguladım.

Error:
com.sun.faces.config.ConfigurationException: It appears the JSP version of the container is older than 2.1 and unable to
locate the EL RI expression factory, com.sun.el.ExpressionFactoryImpl. If not using JSP or the EL RI, make sure the co
ntext initialization parameter, com.sun.faces.expressionFactory, is properly set.
Solution:
Include el-api and el-impl from https://uel.dev.java.net/ (version 1.0. used)


Ayrıca bakınız.

12 Aralık 2010 Pazar

Müzik ve İş

Bazen müzikle çalışmanın verimimi oldukça arttırdığını düşünüyorum. Özellikle ofisdeki gürültülü ortamda bir şeyler dinlemek ilginç şekilde yaptığım işe odaklanmamı kolaylaştırıyor. Hatta bazen müziksiz çalışamıyorum bile diyebilirim.

Music & Work @ themoah's posterous

The Best Sounds For Getting Work Done @LifeHacker

When Noise Helps: Stochastic Resonance and ADHD@Developing Intelligence

23 Eylül 2010 Perşembe

Hibernate Transform Alias To Bean

Hibernate'de bir tabloya yapılan sorgu sonucunu direkt olrak başka bir tabloya dönüştürme: ( Hibernate Transform Alias To Bean )


public List findTxnPerPCodes(String institutionId) {

  try {
     // Criteria oluşturuyoruz

     Criteria c = getSession().createCriteria(Txn.class));

     // Hibernate BUG: this. koymak gerekiyor. bkz:

     // http://www.weask.us/entry/hibernate-query-projections
     c.add(Restrictions.eq("this.institutionId", institutionId));

     // Projection oluşturuyoruz

     ProjectionList projList = Projections.projectionList();

     // Group by özelliklerini veriyoruz

     projList.add(Projections.groupProperty("institutionId"));
     projList.add(Projections.groupProperty("timeDaily"));
     projList.add(Projections.groupProperty("atmDim"));
     projList.add(Projections.groupProperty("currencyDim"));
     projList.add(Projections.groupProperty("pcode"));

     // setResultTransformer'in TxnPerPCode icinde objeleri set

     // edebilmesi icin alias veriyoruz
     projList.add(Projections.property("institutionId"), "institutionId");
     projList.add(Projections.property("timeDaily"), "timeDaily");
     projList.add(Projections.property("atmDim"), "atmDim");
     projList.add(Projections.property("currencyDim"), "currencyDim");
     projList.add(Projections.property("pcode"), "pcode");
     projList.add(Projections.count("id"), "txnCount");
     projList.add(Projections.sum("amount"), "txnAmount");

     // Criteria için projection set ediyoruz

     c.setProjection(projList);

     // Criteria sonucunu TxnPerPCode entity'lerine transform ediyoruz
     c.setResultTransformer(Transformers.aliasToBean(TxnPerPCode.class));

     return c.list();

  } catch (HibernateException e) {
     throw new DBInfrastructureException(e);
  }


}

20 Eylül 2010 Pazartesi

And So You Code?


UniPaaS isimli yazılımın viral reklamını yapan oldukça eğlencili bir video.

15 Temmuz 2010 Perşembe

ExtJs.Window için Sürükle Bırak (Drag'n Drop) Düzeltmesi

Bir süredir ExtJS ve diğer bazı JS kütüphanelerinden bolca kullanıldığı bir ajax ekranı ile uğraşmaktaydım. Şöyle bir problemle karşılaştım, ekranda bir çok panel açık olduğunda bir Ext.Window açtığımızda Ext.Window'u sürükle bırak yaparken aşağıdaki ekranlarla da etkileşim sürdüğü için takılmalar oluyordu.

Bu sorunu Ext.Window'u "modal pane" olarak yaparak (modal:true) çözebilirdim ama window açıkken arka plan ile etkileşimi kaybetmek de istemiyordum. Bu nedenle ben de şöyle bir çözüm düşündüm: Ext.Window sürükle bırak yapılırken arka plan modal pane haline gelsin (opacity verilen bir mask div'i sayesinde), sürükle bırak tamamlanınca da eski haline dönsün.

    ...
    <div class="ext-el-mask" id="ext-modal-mask" 
    style="display: none; width: 100%; height: 100%; z-index: 9000;"></div>
    ...
    var originalStartDrag = Ext.Window.DD.prototype.startDrag;
    var originalEndDrag = Ext.Window.DD.prototype.endDrag;
    Ext.override( Ext.Window.DD, {
        startDrag: function() {
    Ext.get('ext-modal-mask').show();
    originalStartDrag.apply(this, arguments);
        },
        endDrag: function() {
         Ext.get('ext-modal-mask').hide();
         originalEndDrag.apply(this, arguments);
        }
    } );

2 Temmuz 2010 Cuma

JSF Component Binding

JSF te ön yüzde kullandığımız nesnelerin sunucu sınıflarındaki karşılıklarını oluşturmak için binding özelliği kullanılır.
Örneğin aşağıda bir input nesnesi bulunmakta ve kayitDemo beanindeki adNesnesi ne bind edilmekte.
    <h:inputText value="#{kayitDemo.ad}" binding="#{kayitDemo.adNesnesi}"/>
    <h:commandButton action="#{kayitDemo.kaydet}" value="Kaydet" />
Bu durumda adNesnesi ne aşağıdaki gibi tüm özellikleri ile erişebiliriz.
    public class KayitDemo {
     private String ad;
     private HtmlInputText adNesnesi;
     public void kaydet() {
      System.out.println("ad = " + ad);
      adNesnesi.setMaxlength(6);
      adNesnesi.setReadonly(true);
      adNesnesi.setValue("Ahmet");
     }
     …
    }
Kullanabileceğiniz nesne tipleri listesi aşağıda bulunmaktadır.
HtmlInputHidden
HtmlInputSecret
HtmlInputText
HtmlInputTextarea
HtmlOutputFormat
HtmlSelectManyListbox
HtmlSelectManyMenu
HtmlSelectOneListbox
HtmlSelectOneMenu
HtmlSelectOneRadio
HtmlOutputLabel
HtmlOutputLink
HtmlOutputText
HtmlSelectBooleanCheckbox
HtmlSelectManyCheckbox
UIInput
UIOutput
UISelectBoolean
UISelectMany
UISelectOne


Sürekli işe yarar bir şey olduğu için elimin altında bulunmasını istedim.



27 Haziran 2010 Pazar

Java Forever





If you've been longing for a movie about the Java programming language, and not much else, JavaZone should do the trick. Starring Scala Johansson, William Windows, Eddie Larrison, Mona Lisa Harddrive, and Lenny Linux.

16 Haziran 2010 Çarşamba

BFB (The Prehistoric Time Before Firebug)

A quote from Java World Article:
Web development arguably has two distinct eras: BFB -- the (prehistoric) time before Firebug when we learned the limits of alerts -- and the modern AFB (after Firebug) when we found that we can once again spend quality time with our families. Firebug truly is Web development evolved. Developing a Web application without using Firebug is like coding Java in vi -- it can be done, but it's just not worth the pain.

Kaynak: Ajax: Tools of the trade - "A rich array of tools for the modern JavaScript developer"