27 Mart 2013 Çarşamba

Docky Menüsünde Bookmark Düzenleme

Buradaki bookmarklar "nautilus" dekilerden gelmekte. Bunları değiştirmek için:

Alt+F2 -> gedit ~/.gtk-bookmarks

Ubuntu 12.04 Launcher Menüsünü Uçurma

http://askubuntu.com/questions/50522/replacing-unity-bar-with-docky

Docky kurulur:
sudo add-apt-repository ppa:docky-core/stable 
sudo apt-get update 
sudo apt-get install docky

İkinci adım:
  • Masaüstünü sağ tıkla 
  • "change desktop background" seç 
  • "behaviour" tabına geç 
  • "auto hide" Off gözüküyor. Bunu açıyoruz. 
  • "top left corner" seçilir 
  • sensitivity en aza çekilir 
Ve kurulum tamamdır. Tepe tepe kullanın:)

25 Mart 2013 Pazartesi

Nutch Plugini Geliştirirken

Plugini hazırladıktan sonra bağımlılıklarını ivy.xml de düzenledikten sonra:

Üzerinde çalışılan nutch source klasörüne gidilir.
  • build.xml de iki noktadaki  "<packageset dir=" listelerinin en alt satırlarına  yeni plugin dizini eklenir. 
Örn:      <packageset dir="${plugins.dir}/benim_ilk_pluginim/src/java"/>
  • src/plugins dizini içerisindeki build.xml de aşağıdaki satırlar eklenir.
    Deploy bölümüne:  <ant dir="benim_ilk_pluginim/" target="deploy"/>
    Test bölümüne : <ant dir="benim_ilk_pluginim/" target="test"/>
    Clean bölümüne: <ant dir="benim_ilk_pluginim/" target="clean"/> 
  • Yeni bir repository kullanıyorsak bunu ivy/ivySettings.xml dosyasında eklemek gerekli.
    • <ibiblio name="yeni" 
      root="https://raw.github.com/ahmetaa/maven-repo/master"
      pattern="${maven2.pattern.ext}"
      m2compatible="true" />

      <chain name="default" dual="true">
      <resolver ref="local"/>
      <resolver ref="maven2"/>
      <resolver ref="sonatype"/>
      <resolver ref="yeniRepo"/>
       
      </chain>
      <chain name="internal">
      <resolver ref="local"/>
      </chain>
      <chain name="external">
      <resolver ref="maven2"/>
      <resolver ref="sonatype"/>
      <resolver ref="yeniRepo"/>
      </chain>
      <chain name="external-and-snapshots">
      <resolver ref="maven2"/>
      <resolver ref="apache-snapshot"/>
      <resolver ref="sonatype"/>
      <resolver ref="yeniRepo"/>
      </chain>

Karşılaşılan Problemler

  1. nutch pluginleri derlerken proje yapısını benim_ilk_pluginim/src/java şeklinde istiyor. Bu şekilde değil ise derlerken hata veriyor. Bunu aşmak için ln -s ile src dizini altında java klasörü için bir kısayol oluşturulabilir. (ln -s main/java/)
  2. Pluginin kullandığı tüm kütüphaneleri plugin.xml de belirtmek gerekiyor. Not: Kullandığı kütüphanelerin bağımlılıklarıda belirtilecek.

Java Static Metodlardan Resourcelara Erişim

Static metodlarda Resource olarak kullanacağınız dosyalara erişebilmek için aşağıdaki kod satırını kullanabiliriz:

BenimSinifim.class.getClassLoader().getResourceAsStream("deneme.txt");

Java Reflection Resource Problemi

Reflection ile kullandığınız bir sınıfın içinde kullanılan bir kütüphane içerisinden resourcelara erişirken  aşağıdaki gibi bir komut satırı kullandığınızda hata alınmakta.

 this.getClass().getResourceAsStream("deneme.txt");

alınan Hata:  "java.lang.IllegalArgumentException: resource deneme.txt not found."


Bunun yerine aşağıdaki satırlar ile kod yazıldığında, sınıfın classloaderı üzerinden işlem yapıldığından, kütüphane içerisindeki resourcelara erişim sağlanabilmekte.          

 this.getClass().getClassLoader().getResourceAsStream("deneme.txt");
               

DBPedia API ile Wikipedia Dumplarını Çekme


Öncelikle işlemi Windows üzerinde yapamıyorsunuz ne kadar kassanızda.

Ubuntu üzerinde aşağıdaki adımları çalıştırdım.
  • Kendi sayfasındaki "git clone git://github.com/dbpedia/extraction-framework.git" komutu çalışmıyor. Bunun yerine idea üzerinden "https://github.com/dbpedia/extraction-framework.git"adresini vererek githubdan kodları indirelim.(ben buraya indirdim --/home/repo/extraction)
  • daha sonra indirdiğim dizinde (/home/repo/extraction) aşağıdaki komutu çalıştırdım.
    • mvn clean install
  • Daha sonra dump dizinine geçip "download.minimal.properties" dosyasında gerekli dedğişiklikleri yapalım. 
    • "base-dir" parametresine dumpların indirileceği dizini verdim (/home/repo/dumpdir)
    • "download" parametresine sadece türkçe dumpları alması için "tr:pages-articles.xml.bz2" ayarladım.
    • Daha sonra dosyayı  "download.properties" olarak keydettim.
  • cd dump
  • ../run download config=download.properties
  • Yukarıdaki komutu çalıştırdıktan sonra dumpdir dizininin altına istediğimiz dillere ait dumpları indiriyor.
  • İndirme işlemi tamamlandıktan  "dumpdir/trwiki/20130212/" klasörünün altına  "trwiki-20130212-pages-articles.xml.bz2" adında bir dosya oluşturuyor. Eğer bu isimde oluşturmazsa yani  -pages-articles.xml.bz2 bölümünde başka birşeyler yazıyorsa bunları dosya isminden siliyoruz.
  • Daha sonra bu dosyayı extract ediyoruz.
  • Sonraki aşamada "extraction.default.properties" dosyasını açıp aşağıdaki değişiklikleri yapmamız . 
    • "base-dir" parametresine dumpların indirileceği dizini verdim (/home/repo/dumpdir)
    • languages=tr
    • extractors.tr=MappingExtractor (Diğer diller için tanımlananları uçurdum)
    • extractors=InfoboxExtractor,WikiPageExtractor(Burada sadece işime yarayacak olanları bıraktım.)
  • Bu işlemi yaptıktan sonra "extraction.properties"  olarak kaydediyoruz. 
  • ../run extraction extraction.properties 
  • Bu işlemden sonra dumpdir/trwiki/20130212 altında ilgili dosyaları oluşturdu

24 Mart 2013 Pazar

JVM Çalışma Mantığı ile İlgili Dokümanlar

http://www.seckintozlu.com/254-java-virtual-machine-nedir.html

Önemli bölümler.
"Bizim uygulamamız çalıştıkça JVM de çalışacaktır çünkü bizim uygulamamızın çalışmasını sağlayan da zaten JVM’dir. JVM’nin ne zaman sonlanacağı da bizim programımızın ne zaman biteceği ile alakalıdır. JVM’nin içerisinde deamon ve non-daemon olmak üzere iki tür thread vardır. Daemon thread JVM’nin kendi içerisinde garbage collection (çöp toplama) gibi amaçlar için kullandığı thread çeşididir. Non-daemon thread ise bizim programımızda çalışan threadlerdir. Bir JVM’nin ömrü, içerisinde çalışan bütün non-daemon threadler sonlandığında biter. Biz ek olarak thread oluşturmadıysak programımızda main bloğunu çalıştıran tek bir non-daemon thread var demektir. Yani main bloğu bittiğinde hem program sonlanır hem de JVM’nin ömrü biter. Program içerisinde birden çok non-daemon thread var ise JVM sonlanmak için bütün non-daemon threadlerin bitmesini bekler."

http://www.seckintozlu.com/52-jvm-iceride-neler-oluyor.html#comment-1337

http://www.ceturk.com/javada-sinif-yukleme-mekanizmasi/

javaclassloading

5 Mart 2013 Salı

Maven global exclude


   <dependency>
                <groupId>org.hsqldb</groupId>
                <artifactId>hsqldb</artifactId>
                <version>2.2.8</version>
                <scope>provided</scope>
            </dependency>