Perşembe, Kasım 26, 2009

SQLCMD Aracı

MSSQL ve .NET ile projeler üretirken işimizi kolaylaştıracak araçlar ve sihirbazlar arasında tabiki komut satırından çalışan araçlara ihtiyacımız olmuyordu. Dün müşterilerden birisinin bilgisayarına teamviewer ile bağlanıp bilgisayarda SQL Management Studio olmadığını anlayınca ilk olarak uzaktan SQL Management Studio ile bağlanmayı denedim. Modemden kaynaklanan sorunlar nedeniyle bir türlü ateş duvarını aşamadık. İnternetten herhangi bir yönetim aracı indirmek yavaş internet bağlantısı nedeniyle imkansız gibi görünüyordu ve  o anda aklıma Oracle SQLPLUS geldi. SQLCMD i bilmeden görmeden SQLPLUS ile tanışmam biraz da Microsoft’un bu tür araçlara bakış açısından kaynaklanıyor olabilir çünkü SQLCMD artık kullanılmayan bir araç olarak görünüyor internette.   Ama oracle ile uğraşırken SQLPLUS aracının komut satırından çalışan ve çok marifetli bir araç olduğunu öğrenmiştim. SQLCMD ile bağlanıp veritabanını oluşturmam ve veritabanı tablolarını ve ilişkilerini düzenleyen SQL scriptini çalıştırmam gerekiyordu. Biraz araştırma sonrasında benim işimi görecek komutları toparladım.

Önce veritabanı dosyasını oluşturmak gerekli. Bunun için komut satırını açarak SQLCMD ile giriş yapıyoruz.

> sqlcmd –S .\SQLEXPRESS

burada .\SQLEXPRESS kısmına SQL Servisinin ismini yazmamız gerekli.

> create database TREEM
> GO

Burada veritabanının ismini vererek veritabanı oluşturduk. GO deyimi transact-SQL için ifadenin bittiğini ve buraya kadar olanı uygula anlamında kullanılan bir anahtar sözcük. Örnek olarak bundan sonra yaptığımız işlemlerin TREEM veritabanı üzerinde uygulanmasını istiyorsak

> USE TREEM
> GO

ile bunu sağlayabiliriz.

Veritabanı hazır olduktan sonra SQL Scriptini çalıştırma vakti geldi. Bunun için de yeni bir komut satırında

> sqlcmd –S .\SQLEXPRESS -i C:\SqlScript.sql

Burada script dosyasının yerini belirtmemiz gerekiyor.

SQLCMD ile  2. Round

Tam kurtuldum dediğim anda client programının biryerinde tarih formatından kaynaklanan bir hata baş gösterdi ve tüm uğraşlarıma rağmen bir daha SQL Datetime kullanmamaya yemin ettikten sonra client programındaki SQLDatetime kullanan alanları string kullanacak şekle getirdim ve veritabanında küçük bir değişiklik yapma gereksinimi böylece ortaya çıkmış oldu. İşlemler tablosundaki datetime olan islemTarihi alanı varchar(50) olarak değiştirilmeliydi ve ben yine SQLCMD ile başbaşaydım. Bu kez yine eksik Oracle çalışmalarımın meyvesini yemeye başladım ve benim de kendime hayret ettiğim bir alter table komutu ile bu sorunu da bertaraf ettim.

> SQLCMD –S .\SQLEXPRESS –U sa –P 1111
> USE treem
> GO

>alter table tbl_islemler alter column islemTarihi VARCHAR(50)
>GO

bu komutlarla önce süper user olarak kullanıcı girişi yaptım. –U parametresinden sonra kullanıcı adı ve –P parametresinden sonra da parola girilmeli. tbl_islemler tablosundaki islemTarihi kolonunun veri tipini de VARCHAR(50) olarak değiştirdim. Burada ilginç bir nokta olarak belirtmek gerekirse, eğer SQL Management Studio ile bu işlemi gerçekleştiriyor olsaydım bu veritipi değişikliğine izin vermeyecekti ve önce tbl_islemler tablosundaki tüm veriyi silmem gerekecekti. SQLCMD ile yaptığım işlem sonucunda programdan sorgu sonuçlarına göre bu komutlar sonrasında tablodaki veriler zaten otomatik olarak silinmişler.

SQLCMD ile ilgili güzel bir deneyim yaşamış oldum. Artık elimin altındaki bu aracı hep kullanmaya çalışacağım.

Salı, Kasım 24, 2009

Glassfish Server Kurulumu


GlassFish uygulama sunucusunu kurmak için öncelikle ilgili adresten indirme yapıyoruz.
Burada Sun Glassfish 2.1.1 sürümünü kullanacağız. JAVA_HOME değerini JDK 5 veya 6 kurulumumuzun yolunu gösterecek şekilde ayarlıyoruz. Windows için environment variables ayarlarını sistem özelliklerinden ileri sistem ayarları bağlantısındaki Environment Variables kısmında JAVA_HOME değerini ekleyerek ya da değiştirerek benim bilgisayarımdaki kurulum için C:\Program Files\Java\jdk1.6.0_16\ değerine getirerek yaptım. Jdk yolu sisteme göre ve versiyona göre değişebilir. Ben eclipse, eclipse çalışma alanı ve uygulama sunucuları ile diğer modüller için diğer disk bölümünde oluşturduğum E:\development klasörüne kurulum yapacağım. İndirdiğim glassfish-installer-v2.1.1-windows-ml.jar dosyasını bu dizin altına kopyaladım. Shift tuşuna basılı tutarak development klasörü içinde bir yere sağ tıkladığımda Open Command Windows Here komutuyla bulunduğum dizinde bir komut penceresi açıyorum.
Komut satırında
java -Xmx256m -jar glassfish-installer-v2.1.1-windows-ml.jar


ile glassfish dosyaları aynı dizine açılıyor. Oluşan glassfish klasörü için komut satırında
cd glassfish
lib\ant\bin\ant -f setup.xml
(ANT_HOME değişkeninin ayarını da sistem değişkenleri kısmında tanımlayabilirsiniz. Benim kurulumumda E:\development\glassfish\lib\ant değerini ANT_HOME değişkenine ekledim.)
komutlarıyla sunucumuzu yapılandırıyoruz.
Bu adımlardan sonra domain1 adında yeni alanımız oluşturulmuş oldu.
cd glassfish
cd bin
asadmin start-domain domain1
komutuyla sunucumuzu başlatabiliriz.
Http://localhost:8080 adresinden sunucuya ve http://localhost:4848 adresinden yönetici girişine ulaşabiliriz.
Glassfish sunucumuzu durdurmak için
cd glassfish
cd bin
asadmin stop-domain domain1
komutunu kullanabiliriz. Bu adımlardan sonra deploy etmek istediğimiz projeyi http://localhost:4848
adresinden deploy edebiliriz.

Pazartesi, Kasım 23, 2009

Eclipse ve Visual Editor

Java ile haşır neşir olurken yapılan en büyük hatalardan birisi IDE ayrımına gitmek. Söylediklerimi bende başkalarından duyduğumda önemsiz olarak niteliyordum ve Netbeans'dan başka birşeye ihtiyacım olacağını sanmıyordum ama jBoss Seam konularında eclipse ile çalışmaya  ihtiyacım olacağını gördüm. Ek olarak eclipse görünüm olarak editörler arasında en rahatı diyebilirim. Linux ve windows üzerinde çok güzel çalışıyor. Önceden de birkaç defa eclipse denemelerim olmuş fakat Visual Editorün kurulumunun anlatımlardaki kadar kolay olmadığını düşünmüştüm. Bu kez hızlıca Eclipse Galileo for JavaEE yi indirdim ve önce jBoss AS ve jBoss seam ile uğraştıktan sonra visual editor kurarak asıl ilgilenmem gereken alana geçeyim dedim ama o da ne! Ne yaparsam yapayım visual editor için gerekli olan kurulumu yapamıyorum. Ne yaparsam yapayım IDE ile Visual editor'un bağımlılıkları çakıştığı için kurulum yapılamıyor hatasının ingilizcesini aldım ve kurmaktan vazgeçiyordum ki Visual Editor Project sayfasında dökümantasyonda Visual Editor 1.4 sürümünü Eclipse Galileo JavaEE üzerine kurmaya çalışmayın yazıyor. Tekrar eclipse indirmesi yaptım ve Eclipse Galileo for Java Developers sürümüne başarıyla kurdum. Kurulum için bilgi verecek olursak http://www.eclipse.org/vep/downloads/ adresinden  indirdiğiniz paketi Eclipse ->Help->Install New Software ->Add->Archive diyerek zor olan yoldan(!) ya da Add->Site adı kısmına VE, location kısmına da http://download.eclipse.org/tools/ve/updates/1.4/ yazarak gelen paketlerden Visual Editor'ü seçerek kurulumu tamamlayabilirsiniz. Daha sonra Visual Editor kullanarak sayfaları düzenlemek için açık olan J2SE projenizde Add->New->Other->Swing ya da SWT kısımlarındaki Visual Class sonekli dosyalardan oluşturabilirsiniz. Kurulum için bu saçmalıkları okumadan direk dökümantasyondan bilgi edinebilirsiniz.( http://wiki.eclipse.org/VE/Update )
Bol Visual Editörlü Günler!

3G İle İnternet

Uzun zamandır blog yazmadığımı düşünüyorum ve yazmayı bırakınca her geçen gün daha da uzaklaştığımı hissediyorum. Bugün iki aydır kullanmakta olduğum 3g internet  hakkında bilgi vermek istedim. Birkaç gün araştırma yaptıktan sonra Vodafone üzerinde karar aldım ve uzun süren taksit ve taahhütnamelerden haz duymadığım için modem ücretini de peşin ödeyerek aylık 40 TL olan 5GB internet paketine abone oldum. İki ay önce bu yazıyı yazmayı düşünmüştüm fakat test aşamasından sonra yazarsam daha doğru bilgiyi paylaşabileceğimi düşündüm. Öncelikle 3g internetimle hiçbir zaman hız konusunda sıkıntı çekmedim. Şehir merkezlerinde en kötü ihtimalle 4.5 - 5 mbit indirme(download) ve 1.75-2.25 mbit gönderme(upload) hızlarına ulaşıyor.  3g hattı bulunmayan bölgelerde ise EDGE hızında bağlantı gerçekleştiriyorum. EDGE hakkında büyük bir önyargıya sahip olduğumu da bu zamanda farkettim çünkü bazen evdeki ADSL modemimin kablolu olmasından dolayı kabloyla uğraşmaktansa EDGE ile internete giriyorum. Çok yüksek miktarda indirme ihtiyacınız yoksa edge ile her işinizi görebilirsiniz.Ayrıca EDGE fiyatlarına dikkat etmek gerekli. Vodafone için bir paket aldıktan sonra EDGE ya da 3g ile bağlanmanızın bir farkı yok ama bazı operatorler edge üzerinden müşterilerinin canını yakıyormuş haberiniz olsun. Modem konusunda ek bir bilgi vermek gerekirse reklamlarda bolca gösterilen beyaz, kapaklı modemler pek de başarılı görünmüyor. Arada 50 tl fark ödeyeceğiniz siyah ve otomatik usb mekanizmalı modemler daha başarılı görünüyor. Yan yana duran iki bilgisayarda takılı olan beyaz ve siyah modemlerden beyaz 3g şebekesi bulamazken siyah modem iyi kalitede 3g şebekesi bulduğunu söylüyor. Bu arada modemlerin adı tabiki beyaz ve siyah modem değil. Siyah olan modemin adı K3715 HSPA USB Stick. Beyaz modemin adını bilemeyeceğim. Ayrıca upload hızını da beyaz modemle yakalayamazsınız çünkü o modemde upload için belirli bir sınır var.
Bu kadar yüksek miktarda upload yapaceğimi görünce 40 tlye ev sunucusu gibi şeyler benim de aklımdan geçti ama upload miktarının da kotaya dahil olduğunu anlayınca vazgeçmek zorunda kaldım.
Vodafone'u tercih etmemdeki sebeplerden birisi de yurtdışında bu işi yıllardan beri yapıyor olması ve linux için sürücüsünün de desteklenmesiydi. Abone olduktan sonra Türkiye'deki modeller için linux desteğinin olmadığını sonradan anladım. Destek derken istediğim kurumun sürücü ve teknik olarak linux'a destek vermesiydi. Linux çekirdeğinin modeme doğrudan destek verdiğini öğrendim. Ubuntu ya da başka bi dağıtım için modemi takar takmaz sistem ,kontorlü ya da faturalı seçeneklerinden birisini seçmenizi istiyor ve varsayılan ayarlarda vodafone için kullanıcı adı ve şifre telsim olarak geliyor bu ayarları vodafone yapmanız ve apn kısmını da internet olarak ayarlamanız gerekiyor. Tek sorun kotayı internetten kontrol edemediğiniz için linux üzerinde bi kota programı kullanmanız gerekiyor. Ayrıca modemin arayüzünü göremediğim için kurduğum tüm kota programlarında başarısız oldum. Diğer bir sorun ise Vodafone SMS ile sorgu gönderip kotanızın yaklaşık nerelerde olduğunu öğrenebiliyorsunuz fakat vodafone client programı yine linux için olmadığından  modem içindeki sim kartınızı bir telefona takıp sms göndermek ve gelen smslere bakmanız gerekiyor. Modemimi linux üzerinde kullanma fikrini biraz ertelemeye karar verdim.
Sonuç olarak 3g hakkında yazı yazmak benim için çok gereksiz birşeydi başta.  Fakat sonradan 3g hakkında yazılanları görünce yeni teknolojileri bizlerin öğrenip insanlara anlatmamız gerektiğini düşündüm ve bu yazıyı yazdım. Çünkü insanlar bazen yeni şeylere öcü gibi bakıyorlar. Bu düzen içinde yaşıyorsak gücümüz yettiğince yenilikleri kullanmalı ve kullandırmalıyız. Tarihte de artık icat edilecek herşeyin icat edildiğini bundan sonra adam akıllı bişey bulunamayacağını ya da otomobilin sadece  boş bir heves olduğunu ya da atların insanlar tarafından her zaman kullanılacağını söyleyen büyükler olmuştur. Büyük sözler söyleyenlere bu örnekleri hatırlatmak gerekir.