| Subcribe via RSS

Java Migration Tool : Migrate4j

April 29th, 2008 | No Comments | Posted in Java, Programlama, Yazılım

Migrate4j , java ortamı için geliştirilmiş bir “migration” aracıdır. “Migration” bu konuda yakın olan kişilerin cok da kullandığı bir kelime olduğu için aynen bu kelimeyi kullanmak daha doğru geldi bana. Bu araç aslında veritabanını biryerden başka yere taşırken yada yeni özellikler eklerken kullanılan bir araçtır. Çoğunlukla birden fazla kişinin aynı anda üzerinde çalıştığı veritabanlarında buna benzer sorunlar yaşanabilir. Geliştiricelerden birisi yeni tablo eklerken, diğeri ise başka tablolarda sütun ekelem yada cıkarma işlemi yapmış olabilir. İşte bu gibi nedenlerden dolayı veritabanlarının senkronize olması istenir, eksik tabloların ve yeni sütunarın otomatik olarak kurulması, eğer tablo yoksa yeni tablo oluşturulması, varsa üzerinde oynanan sütunların değiştirilmesi istenir. İşte bu tarz sorunları çözmek için çeşitli “migration” araçları vardır. Bunlardan birisi Migrate4j uygulaması.

Migrate4j diğer araçlardan biraz daha fazla özellik içerir. Örneğin sorgular native SQL değil java ile yazılmaktadır. Ayrıca farklı veritabanları motorlarında sorunsuzca çalışabilmektedir.

Nasıl Kullanırım?
Migrate4j uygulamasını http://migrate4j.sourceforge.net/ adresinden hem daha fazla detaylı bilgi alarak bakabilir hemd e bu adresten indirebilirsiniz. İndirdiğiniz paket içinden cıkan Migrate4j.jar dosyasını kullandığınız editörten tanımlayarak yada console ile derleyecekseniz ilgili classpath içine almanız yeterli. Daha sonra uygulamanızın an dizininde migrate4j.properties ayar dosyası oluşturmanı gerekiyor. Bu dosya içinde genel ayarlar ile bağlantı çümlesi ve driver seçenekleri olmalıdır. Örnek bir migrate4j.properties şu şekilde olabilir.

connection.url=”jdbc:mysql://localhost:3306/testdb”
connection.driver=”com.mysql.jdbc.Driver”
connection.password=passw@rd
migration.package.name=test.migratebase

Bu dosya içinde bağlantı için mysql deki testdb veritabanını kullandığımızı ve migration paketlerinin test.migratebase içinde yer aldığını belirttik. Daha sonra yazacağımız migrate sınıflarını bu paket içinde oluşturmamız gerekli.

Örneğin Student diye bir tablomuz var. Eğer sistemiizmde bu tablo yoksa oluşmasını, sistemden silmek istediğimizde ise bu tablonun silinmesini sağlayan nesnemiz şu şekildedir:

package test.migratebase;

import static com.eroi.migrate.Define.*;
import static com.eroi.migrate.Define.DataTypes.*;
import static com.eroi.migrate.Execute.*;
import com.eroi.migrate.Migration;

public class Student implements Migration {

public void up() {
createTable(
table(”student_table”,
column(”id”, INTEGER, primarykey(), notnull()),
column(”firstname”, VARCHAR, length(50), defaultValue(”NA”)),
column(”lastname”, VARCHAR, length(50), defaultValue(”NA”)),
column(”number”, VARCHAR, length(15), defaultValue(”NA”))));
}

public void down() {
dropTable(”student_table”);
}
}

Evet aslında bu nesne bizim için student_table tablosu yoksa oluşturmayı varsa silmek istediğimizde ise silmeyi sağlıyor. genel olarak eğer bir tablo oluşturulucaksa “up” silmek istenilirse “down” metodu çağrılacaktır.

Kabaca bir tablonun bir migration araçla nasıl silinip kurulacağını gördük. Elbette bu yeterli değildir. Sitesine girerek detaylı bilgi alabilirsiniz. Eğer bir sorunla karşılaşırsanız yardımcı olmaya çalışırız.

Kolay gelsin

Tags: , , ,

Linux’da Counter-Strike Keyfi

April 3rd, 2008 | No Comments | Posted in Linux, Oyun, Teknoloji, Yazılım

Bir dönemin efsane oyunu (halen öyle - çalıştığım firmanın vazgecilmezlerinden birisi) Counter Strike, linux ortamında da oynamanız münkün.

Wine , linux ortamında windows platfromu için yazılmış programları çalıştırma olanağı veriyor. Yapmanız gereken öncelikle wine kurmaktır. Wine ubuntu/debian da sudo apt-get install wine ile kurabilirsiniz.

Wine kurulduktan sonra, steaminstaller i wine da çalıştırarak kurabilirsiniz. Ama ben farklı bir şekilde yapacağım. Dizüstü bilgisayarımda hem linux hemde windows kurulu ve windows ortamımda counter strike kurulu bir şekilde bulunuyor. Bilgisiyar ın en büyük keşiflerinden birisi olan kopyala+yapıştır teknolojisini kullanarak ( :lol: )

/home/KULLANICI_ADI/.wine/drive_c/Program Files/Valve klasörü şeklinde kopyalıyorum. Daha sonra terminatör den bu klaösürün içindeyken wine hl.exe -nomaster -game cstrike ile counter-strike çalıştırıyorum. Yalnız burada ses yada ekran kartınızla ilgili sorun cıkabilir. Böyle bir sorunla karşılaştığınızda wine ayarlarını kontrol edip düzeltin.

Gördüğünüz gibi Linuxda da cs gibi oyunları rahatlıkla oynama olanağı var.

Tags: , , ,

Hayattan ilginç Notlar

March 30th, 2008 | 1 Comment | Posted in Genel

Gecen hafta Adana Valisi bir liseye ziyaret sırasında öğrencilerle vali arasında gecen konuşma gülünç ama gayet manidardı. Vali öğrencilere Canakkale savaşının nerede olduğunu sordu. Öğrenciler 2 gruba ayrıldı bir kısmı Kars derken diğer bir kısmı ise Erzurum diye itiraz etti. En sonunda öğrenciler arasında Erzurum Kars arasında bir yerde olduğu kanaatine varıldı. İşin daha da garibi bu lise öğrencileri kendi ilindeki ilçeleri de bilmiyorlar. Ne diyelim eğitim sistemindeki en büyük çarpıklığı komik ama en gercekci şekilde görmek mümkün böylece. İçi boş ve gereksiz bilgilerle dolu, sadece ezbere ve bıktırmaya yönelikders kitapları, ruhu gitmiş, kutsal öğreetmenlikten uzak yaşam derdiyle iştigal olan öğretmenler, aileler, öğrenciler… Bu cocukların bu şekilde cevabını o zaman yanlış görmemek lazım. toplumda herkesin bu cevaplarda hakkı var.

İşin daha da garibini anlatayım. Üstte anlattığım olay olduktan bir gün sonra, İstanbulda buna benzer bir hadise ile karşılaştım. IETT de iyi görünümlü (muhtemelen bankada çalıştıkları kıyafetlerinden belliydi) 2 kişi arasında sayma olayı ilgili bir tartışma oldu. Birisi alfabe de “b” den sonra ne geldiğini diğerine soruyor, diğeri ise daha da ilginc cevap vererek “b” alfabenin kaçıncı harfiydi diye cevap veriyordu. Ben hüsn-i zan besleyerk bu kişilerin iş yorgunluğundan bu şekilde konuştuklarını düşünüyorum. Yoksa lise öğrencilerinin bir mazeret hakkı var, ama bu 2 kişinin (muhtemelen üniversite mezunu her ikisi de) mazaret hakkı yok.

Bir diğer hayatla ilgili ilginç bir olay ise dün karşılaştım. Futbol maçlarında insanlar bağırmaya, taraftarı olduğu takımı desteklemeye gelirler. Ama bir yandan da futbol maçına gelip de kitap okumaya çalışan kişi herhalde ben görmüşümdür tek. Ne diyelim lise öğrencileri Canakkale savaşını nerede olduğunu öğrenedursun, böyle ortamlarda da kitap okuyan birilerinin olduğunu bilmek helede gözlerinle görmek gurur verici. Başka bir ülkede de bile olmaz bu olay cünkü.

Tags: ,

Java da PHP:Quercus

March 4th, 2008 | No Comments | Posted in Java, Programlama, Yazılım

J2EE 5 bir çok yeni özellikle gelmiş olmasına rağmen, özellikle hızlı uygulama gelişitirebilmek istenen uygulamalarda java nın fazla geldiği, basit uygulama geliştirmek için javanın tercih edinirliği azaldığını görmekteyiz. Bu kapsamda j2ee 6 da rapid geliştirme ortamlarının entegre olacağı ve bu sayede de daha küçük ölçekli yazılımlar için bu uygulamaların tercih edilebileceği planlanıyor. Bütün bunlar devam ederken, bazı yazılımlar yeniden yorumlanmaya başladı. Bunlardan birisi ise Quercus.

Quercus aslında PHP 5 tamamen java ile GPL lisansıyla yeniden yazılmış halidir. PHP 5 içerdiği tüm özellikleri barındırır. Ayrıca PHP nin kullandığı temel modüller olan Mysql, json, pdf gibi modüller de yazılmıştır. PHP den farklı olarak ise java servisleri ile çok iyi entegre edilmiştir.
Sadece bu modüller değil, PHP de kullanılan önemli birçok modül Quercus içine dahil edilmiş. Hatta tanınmış bazı önemli php uygulamaları quercus üzerinde başarılı bir şekilde çalıştığı rapor ediliyor. Bu uygulamalrdan bazıları wordpress, joomla, drupal,phpBB … gibi devam ediyor.

Quercus için yapılması gereken ilk şey sitesinden elde edebileceğiniz .war dosyası. Bu dosyayı herhangi bir java application server üzerinde çalışıtırılabiliyor. Bu dosya ile beraber gerekli php kütüphaneleri de geliyor.

Var olan uygulamaları üzerinde çalıştırmak cok kolay. Coğunlukla yapmanız gereken config dosyasına müdaheel etmek ve cok kısa sürede uygualamanızı quercus ile çalışır hale getirebiliyorsunuz.

Detaylı bilgi için caucho sitesinden bilgi alabilirsiniz.

Tags: , ,

Sun SPOTS da Açık Oluyor

February 22nd, 2008 | No Comments | Posted in Java, Teknoloji, Yazılım

Sun, SPOTS u da açık hale getiriyor. Şu anda open source projelerin yarıdan fazlasını destek veren Sun, sensör tabanlı SPOTS uda acık kaynak yapmaya hazırlaıyor. SPOTS java ile geliştirilen, wireless tabanlı bir system. SPOTS içinde bir Squawk adı verilen bir VM barındıran ve sadece gerekli sınıfların bulunduğu, cok kısıtlı imkanları kullanmak için tasarlanmış bir sistem.

Detaylı bilgi için tıklayınız.

Tags: , , ,

Java SE 7 - 1

February 20th, 2008 | No Comments | Posted in Java, Programlama, Teknoloji, Yazılım

Merhaba Java yeni sürümü olan Java 1.7, bu yılın sonunda cıkması bekleniyor. Java 7 birçok yeni özellikle gelecek. Burada bunlardan sadece 2 tanesini kabaca göstermek istiyorum.

java life

Property Syntax

Artık Java dilinde de property kavramını kullanabileceğiz. getXXX ve setXXX yerini alacak olan bu özellik örnek kullanımları şu şekilde:

public property String name;    // Read-Write
public property int id get;     // read only
public property Date zaman

        get { return zaman;}

        set(Date d) { zaman = d; doSth();}

Swing Application Framework

Evet nihayet swing uygulamalar için daha esnek bir yapı geliyor. Properties dosyaları daha etkili oluyor. Örneğin bir swing uygulamanız var içinde de jButtonName diye bir JButton nesneniz var. Bunu properies dosyasında tek hamlede onun dış özelliklerini belirleyebilrisiniz. Örneğin aşağıdaki örnek dosya sayesinde jButtonName bazı dış özellikler belirlenmiş.

ButtonName.background = 0,0,0

jButtonName.icon = icon.png

Ayrıca swing lifecycle içinde de değişikler geliyor. Swing içinde beankullanmak mümkün olacak.

Tags: ,