Perşembe, Şubat 04, 2010

CETURK JAVA ve Kariyer Günü

CETURK olarak Çankaya Üniversitesi Uygulamalı Matematik Bilgisayar Bilimleri Topluluğu ile birlikte "JAVA ve Kariyer Günü" etkinliği düzenliyoruz. Etkinlik konusu dahilinde JAVA dünyasındaki kariyer olanaklarından bahsedilecek ve etkinlik sonundaki panelimiz ile bilgi alışverişi gerçekleştirilecektir.Etkinliğe katılım ücretsizdir.



Konuşmacılar ve Seminer Konuları:
Kadir Teke - Mehmet Gursul : İş İlanlarında Java

Kenan Sevindik : Java, Kariyer ve Gelecek


Mert Çalışkan : Fikrim Açık, Kodum Açık
Ümit Vardar : JavaFX
Adres:


Çankaya Üniversitesi - Mavi Salon
Tarih: 19 Şubat 2010 - Cuma
Saat: 12:00 - 17:00


Kayıt işlemi için bu bağlantıyı kullanabilirsiniz.

Çarşamba, Şubat 03, 2010

Java Dökümantasyonu

 http://tinyurl.com/4evmdy adresinden Sun java dökümantasyonunun windows help formatındaki düzenlenmiş şekline ulaşabilirsiniz. Really Big Index!

Salı, Şubat 02, 2010

Oracle-Sun satın alma sonrası gelişmeler



Oracle, Sun satınalmasının üzerinden uzun bir süre geçti ve herkes java tarafındaki değişiklikler  ne zaman olacak diye merakla gelişmeleri bekliyordu. Ben de bu satınalmanın javaya getirilerini ve zararlarını uzun zamandır bloglardan ve IT sitelerinden okuyorum. Genel kanı Oracle satınalmasından sonra java tarafına zarar verecek gelişmelerin olacağıydı. Hala da bu kanı değişmedi. %30 gibi bir kesim iyi şeyler olacağını düşünürken java geliştiricilerinin %70'i Oracle'i tehdit olarak görüyor. Ben olaya başından beri farklı bakıyorum. Çünkü IT sektöründe de gelişim parayla doğru orantılı. Bugün özgür dediğimiz linux çekirdeğinin bile üzerine eklenen kodlarından %70 e yakını Redhat, IBM, Sun ve Canonical şirketlerinin yani profesyonel ve maaşlı çalışanların katkısıyla oluşturuluyor. Java kısmında da çok güzel projeler yapılsa da şu anda javanın her alanda .net kadar başarılı ve uygulanabilir olduğu söylenemez. Sebebi ise javanın gelişmelerinin ticari bir amaç taşımaması. Örnek olarak java programlarında tray icon özelliği j2se 1.6 ile geliyor. ve 1.6 nın çıkış tarihi bu özellik için oldukça geç sayılabilir. Oracle ise javayı tamamen para kazanmak için kullanacağına ve geliştireceğine işaret ediyor. Ve bunları yaparken bence yine açık kaynak yolunu seçecektir çünkü Oracle'in bir anda programcıları lisans ücretleriyle korkutarak MS tarafına kaçırmayı göze alamayacağını düşünüyorum. Ayrıca Oracle'ın 100 dolara işletim sistemi ya da ofis programları satarak geçimini sağlamak isteyen bir şirket olacağını da düşünmüyorum. Yani java uygulamaları gelişecek ve bu güzel java uygulamalarıyla birlikte oracle uygulama sunucusunu ve oracle veritabanını satın alacaksınız. Ayrıca unutulmaması  gereken Sun server ve workstationlar. Yani oracle bu geçen zaman içinde para getirecek kısımları bizden çok daha iyi inceledi ve olay sadece java veya yazılımla bitmiyor.  Türkiye de son yıllarda göz dolduran pazarlardan ve Bill Gates' den sonra Laryy Ellison 'ı da Türkiye topraklarında görebiliriz. Daha unuttuğum ama unutulmaması gereken bir MySQL var ki veritabanı pazarında ücretsiz ama etkili bir çözüm olarak görülüyor. Unix-Linux tarafına hiç girmeyeyim çünkü linux - java- mysql - oracle, bunlar hep amcaoğlu, aralarından su sızmıyor. Bakalım yeni dengeler nasıl olacak. Merakla bekliyoruz.

Cumartesi, Ocak 30, 2010

Copyleft / Copytheft ?

GNU ortaya çıkmış ve copyright 'a inat olsun diye copyleft türetilmiş. Bir yazılımın kaynak kodlarının açıkta olması, gözle görülebiliyor olması, okumasanız da nasıl olsa değiştirmesi ve düzenlemesi gereken birileri tarafından okunup inceleniyor diye düşünmenizin ardından gelen rahatlık gerçekten çok güzel. Kodlar açık (ikili dosyalar değil, okunabilir dosyalar) ve genelde c, py gibi uzantılara sahip, programı indiriyorsunuz 240 KB ve make install ederek derleyip kullanıyorsunuz ve taş gibi tıkır tıkır işini yapıyor. Düşünüyorsunuz, kodların yukarıdan aşağıya sağdan sola okunuşları gözünüzün önüne geliyor, (tabi abarttım artık birçok teknik var tüm programlar böyle çalışmıyor), ve GNU ya içiniz ısınıyor, yaptığınız işlerde de böyle çalışmayı düşünüyorsunuz. Tabi işiniz bu yani bilgisayarları otomatikleştirmek , daha az insana ihtiyaç duyacak sistemler üretebilmek ve bundan para kazanmanız da gerek. Sonra Türkiye'de yapılan işlere bakıyorsunuz ve sitelere bakıyorsunuz kod arayan insanlara rastlıyorsunuz,  kod arayan insanlardan daha fazla kod  bile aramadan hazır sistem arayan insana rastlıyorsunuz. Burada özgür yazılım adına hep özgürlük yolunda dayak yemiş ve hapislerde çürümeye bırakılmış yazılımlar görüyorsunuz. Özgürlük burada çok acı birşeymiş diyorsunuz. Linux ya da GNU demek sadece ücretsiz yazılım, ücretsiz iş gücü demek değildir diye internette yazılara rastlıyorsunuz. Yani free: bedava bira değil, özgürce konuşmaktır diyor R. Stallman. İy adam diyorsunuz. Bilgiye sahip olan insanla, etik olmayan yolları tercih etmeyen insanın savaşı sürerken arada yine "copyright" kazanıyor ve binary dosyaları milyonlarca kez dvd ye kaydetip satıyor. Satıyor burası güzel çünkü binlerce insan geçimini bu yoldan sağlıyor ama satın aldığınız şey sadece bir katakutudan ibaret. İçinde ne var bir yazan biliyor bir de Allah biliyor....

Cuma, Ocak 29, 2010

SQL Injection Girişleri

SQL Injection  programcıdan kaynaklanan bir sorundur.  Bazen yetkisin erişime olanak verdiği için bilgisayar sistemleri için çok önemli fakat önlemi alınabilen bir konudur.Parametre kullanmadan doğrudan SQL cümlecikleriyle işlemler yaptığımızda kötü niyetli kişiler tarafından girilen SQL cümleciğindeki şartlı durumları doğru yapacak şekilde girdiler, sisteme yetkisiz ya da yanlış yetkilendirilmiş girişlerle sonuçlanır. SQL cümlelerinde bu kondisyonları bozan girdiler şöyledir:
’ or 1=1--
" or 1=1--
’ or ’a’=’a
or 1=1--
’) or (’a’=’a
" or "a"="a 
SQL Injection'dan korunmak için yapılması gerekenler ise gayet basittir. İlk alınacak önlem ' ve " karakterlerinin yukarıdaki gibi kullanımını önlemek. ' karakterlerini '' ile değiştirmek iyi bir çözümdür. Diğer karakterler için de yine bir karakteri ikilemek ya da tamamen silmek düşünülebilir. Burada önemli nokta girişin ne olarak kullanılacağıdır. Bir parola girişi için tüm üye kayıt ve girişlerindeki karakterler üzerinde aynı işlemleri yaparsanız verilerin doğrulanması ve tutarlılığında sorun olmayacaktır.

Pazar, Ocak 24, 2010

Linux ile Kullandığım Programlar



Uzun zamandır buraya yazı yazmadığımı farkettim ve küçük karalamalarla başlamak gerektiğini düşünerek bu yazıyı yazmaya karar verdim. Kullandığı linux programlarını paylaşmak bir gelenek oldu çünkü her kullanıcının bir süre sonunda kazandığı bir deneyim var. Ben de bu deneyime yer vermek istedim.
Kullandığım programlar yani sistemimi kurduğumda update komutundan sonra verdiğim apt-get install satırını takip eden programlarım şunlardır:

  • Google chrome beta : Filrefox ve Operanın linux altındaki performansından pek memnun değilim. Yeni tarayıcı chrome'un linux için bir betası var ve yakında stabil sürümü de gelecektir.
  • Thunderbird: Windows ve linux ile kullandığım en sevdiğim mail /rss programı.
  • Netbeans: Java, C, C++, Ruby, Python, PHP ve daha birçok dili destekleyen  muhteşem yazılım gelişirme ortamı.
  • Chmsee: Linux ile chm formatındaki dosyaları görüntülemek için kullandığım araç.
  • Emesene: Linux için güzel bir msn programı. 
  • Filezilla: FTP işlemlerimi yapmak için windows ve linux ile kullandığım tek ftp programım.
  • Virtual Box: Sanallaştırma için kullandığım ve ücretsiz, open source versiyonunun da geliştirildiği ( VirtualBox OSE) bence bir numara sanallaştırma yazılımı.
  • VLC player: Film ve müzik için güzel bir uygulama.
Ayrıca bu çalışan programlar için gereklilikler ve arkaplanda çalışan bazı araçlar da var.
  • preload: sık kullanılan programları linux için önbellekleme yapan yazılım.
  • ubuntu-restricted-extras: Codec, font, sıkıştırma formatları gibi sorunlardan kurtulmak için.
  • sun-java6-jre: Java runtime.
  • sun-java6-jdk: Java geliştirme ortamı.
  • postgresql: güçlü bir RDBMS. 
  • pgdesigner: postgresql veritabanı tasarımını görsel olarak yapmayı sağlayan program.
Bu yazılımlar linux ile işlerimi kolaylaştırmamı sağlıyor.

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.

Çarşamba, Ekim 28, 2009

Sanaldaki Linux Server

Uzunca bir aradan sonra tekrar merhaba. Bugün benim çok hoşuma giden yeni bir linux macerasından söz edeceğim. Bu yazıdaki anlatılanları uygulayabilmeniz için sanal işletim sistemi çalıştırabilecek bir bilgisayara virtualbox ve ubuntu server 9.04 cd ye ihtiyacınız olacaktır. Amacımız gerçek bir Linux serverin bize verebileceklerini sanaldaki sistemimizden alabilmek. Filezilla, Putty ile bağlantı yapmak ve server üzerinde çalışan Apache sunucusunu bizim sistemimizden çalıştırabilmek.

Her zaman windows işletim sisteminden kopamayan ama elinin altında bir linux kurulumu olmasını isteyen birisi olmuşumdur. Üniversitede okutulan dersler ve sektördeki bazı işler windows kurulumunun olmasını zorunlu hale getirebiliyor. Hal böyle olunca linux üzerinde ihtiyacınız olan tüm programların düşük performanslı çalışan windows eşdeğerlerini bulmak zorunda kalıyorum. Bugün VirtualBox üzerinde ubuntu 9.04 kurulumu için kolları sıvadım. Kurulumu önceden defalarca yaptığım için fazla zorluk çekmedim.

Kurulum notu: Ubuntu server kurulumunda LAMP(Linux Apache mysql Php), Tomcat6, OpenSSH kurulumu yapmanız aşağıdaki örnekleri gerçekleştirmek için gerekli olacak.

VirtualBox üzerine bir Ubuntu Server kurduktan sonra ilk yapmamız gereken serveri kapatmak. Daha sonra
C:\Users\{user_name}\.VirtualBox\Machines\ altında servera verdiğiniz isimde bir XML dosyası olacaktır. bu dosyada
<ExtraData> anahtarları arasına aşağıdaki anahtarları ekleyeceğiz.

[code]
<ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" value="2222"/>
<ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" value="22"/>
<ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" value="TCP"/>
<ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/HostPort" value="8888"/>
<ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/GuestPort" value="80"/>
<ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/Protocol" value="TCP"/>
<ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/tomcat/HostPort" value="9090"/>
<ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/tomcat/GuestPort" value="8080"/>
<ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/tomcat/Protocol" value="TCP"/>
[/code]


Bu kodlar ile portları eşleştirmiş oluyoruz. anahtarlarda geçen tomcat- apache- ssh isimlerinin bir önemi yok. Yani istediğimiz kadar port eşleştirmesi yapabiliriz. Dikkat etmemiz gereken nokta host ve guest olarak verdiğimiz portların host değerlerinin bizim bilgisayarımıza, guest değerlerinin de server sistemin portlarına işaret ettiğini bilmek. Diğer bir konu da bilgisayarımızda kullanılan portları kullanmamak. Eğer sistemimizde bir tomcat kurulumu varsa 8080 portu boş olmayabilir. Bu durumda başka bir değerle değiştirmesiniz.

 



Sanal Ubuntu Serverı şimdi bu ayar dosyasına göre başlatırsak ve eğer hata mesajı ile server kapanmamışsa yaptığımız değişiklikler çalışıyor demektir.  İlk olarak 2222 portunu Putty ile test edelim.

Capture

Capture2

Host olarak her zaman 127.0.0.1 ya da localhost kullanacağız. Gördüğünüz gibi artık uzak bağlantımı sağladım. Sanal makina bana ne kadar da uzak değil mi :=)

Diğer işlem de yine SSH kullanarak Filezilla ile linux dosya yapısına erişmek.

Capture3

Burada sftp:// protokolü ile erişildiğine dikkat etmelisiniz. Kullanıcı adı ve şifre linux oturum açma bilgileriyle aynı. Her alana yazamayacağınızı da hatırlamanız gerek. Eğer bir dizine yazma hakkı elde etmek istiyorsak chown kullanabiliriz.
(sudo chown -R kullaniciadi /var/www/  ) gibi.

Apache ile Php sayfalarını çalıştırmak için de Filezilla ile bağlanıp /var/www/ altına php dosyalarımızı atabilir ve http://localhost:8888 yolunu izleyerek windows sistemimizden sonuçları görebiliriz. Apache Tomcat için de yine aynı şekilde servlet çalışmalarımızı http://localhost:9090 adresinden tests edebiliriz.
Tomcat için jsp sayfalarımızın bulunması gereken adres:
var/lib/tomcat6/webapps/ROOT/
Benim bilgisayarımdan ekran görüntüleri:

Capture4

Capture5

Buradaki linux server sanallaştırmasının gerçeği ile herhangi bir farkı olmadığı düşüncesindeyim. Linux dolu günler dilerim :=)

Linux is like a tepee. It has no Windows, no Gates, and there is an Apache inside

Pazartesi, Ekim 26, 2009

But The World Goes 'Round

Sometimes you're happy, sometimes you're sad
But the world goes 'round
Sometimes you lose every nickel you had
But the world goes 'round
Sometimes your dreams get broken in pieces
But that doesn't alter a thing
Take it from me, there's still gonna be
A summer, a winter, a fall and a spring
And sometimes a friend starts treating you bad
But the world goes 'round
And sometimes your heart breaks with a deafening sound
Somebody loses and somebody wins
And one day it's kicks, then it's kicks in the shins
But the planet spins, and the world goes 'round-
But the world goes 'round
But the world goes 'round
Sometimes your dreams get broken in pieces
But that doesn't matter at all
Take it from me, there's still gonna be
A summer, a winter, a spring and a fall
And sometimes a friend starts treating you bad
But the world goes 'round
And sometimes your heart breaks with a deafening sound
Somebody loses and somebody wins
Then one day it's kicks, then it's kicks in the shins
But the planet spins, and the world goes 'round
And 'round and 'round and 'round and 'round
The world goes 'round and 'round and 'round
And 'round!

Pazar, Ekim 25, 2009

Vista DVD ile Disk Biçimlendirmek

Windows XP CD si ile kurulum yapanlar hatırlayacaklardır ki kurulum yapacağımız diski seçtikten sonra formatlama türünü seçme gibi bir seçenek de vardı. Hızlı format seçeneğini seçersek seçilen diskteki dosya tabloları siliniyor ve bölümleme tablosu güncelleniyordu.Normal format işlemi seçildiğinde ise diskin boyuna göre çok uzun zaman alıyor ve hasar görmüş bölgelerin tesbiti ve sektor yapısının tekrar inşa edilmesi yapılıyordu. Vista DVD ile kurulum yaparken normalde böyle bir seçenek yok. Yani her format sadece dosya tablosunu uçuruyor. Normal format işlemini Vista DVDsi ile yapmak için bir kaç adım yeterli oluyor.

Öncelikle DVD den bilgisayarı boot ediyoruz. Kuruluma başlamadan önce " bilgisayarınızı onarın" bağlantısına tıklıyoruz. Burada işletim sistemini seçin ekranını ileri ile atlıyoruz. Kurtarma menusunde Command Promt(Komut İstemi)'ni seçiyoruz. Şimdi "x:\Sources>" yolunda konsola düşmüş olmalısınız. "diskpart" yazarak işlemi gerçekleştirecek programı çağırıyoruz. "list disk" komutu ile diskleri listeliyoruz. Disklerimizin bir listesi gelecektir. Grid içerisinde gördüğümüz disk numarasını "select disk 0" şeklinde yazıyoruz. Böylece numara ile belirttiğimiz diski seçmiş olduk. "select volume" komutu ile de birimi seçmemiz gerekiyor. CD/DVD sürücüsü ve disk bölümlerini gördüğümüz listeden istediğimiz diskin numarasını alıyoruz ve "select volume 1" komutu ile birimi seçiyoruz. (Bende disk 2. sıradaydı.) Sonra ise "format fs=ntfs label=system" komutu ile format işlemini başlatıyoruz. Label olarak istediğiniz bir isim seçebilirsiniz. Bir süre sonra diskiniz formatlanmış olacaktır. Konsola tıklarsanız imleç belirecektir. Bu durumda ilerleme sürecini gözlemleyemezsiniz. İmleci tekrar dışarıda tutmak yüzdeli format sonuçlarını görmek için konsola sağ tıklamalısınız.

Not: Komutlar da tırnak işareti kullanılmamalı. Gösterimde kolaylık olması için kullandım.

Not : (2)Bu yazıyı neden yazdım? Çünkü bu bilgiye ihtiyaç duydum ve belki başka ihtiyaç duyacaklar olur diye düşündüm.

Pazar, Eylül 20, 2009

Cloud Computing Nedir?

images.jpgCloud Computing basit olarak düşünülürse bilgisayar programlarının ve sistemlerinin kısmen ya da tamamen web ortamına taşınmasıdır. Yani önceden hard diskimizde kurulu olan veya işyerindeki ağ üzerinde çalışan programlarımız web ortamına taşınıyor. Geniş kapsamlı olarak düşünürsek yazılımları servis olarak(software as service), servisleri platform olarak (Platform as a Service), alt yapıyı servis olarak (Infrastructure as a Service) sunan bir yapı ile karşı karşıyayız. Tabi tam olarak görüp denemeden anlatmak vizontele gibi bir komediye de yol açar mı bilmem ama zaten biz servisleri uygulamalarda kullanıyorduk. Burada sadece daha yaygınlaşmış ve standartlara göre düzenlenmiş , kurumsal alanda kullanımın ön plana çıktığı bir sistem oluşturuluyor. Burada google ofis programlarını örnek verebiliriz. Google servisleri tüm insanlığa açık olan bir sistem özelliği taşıyor. Cloud Computing kullanılarak oluşturulabilecek sistemler genel kullanıma açık ya da belirli bir kullanıcı grubuna açık olabileceği gibi bir güvenlik duvarının arkasında daha kısıtlı kullanıcıları da olabilir. Ayrıca bu tekniklerin tümü kullanılarak bazı kısımları genel, bazı kısımları ise daha özel kullanımlar için ayrılabilir.

Uygulaması ise çok daha güzel. Web barındırma hizmeti alır gibi , bu hizmeti veren şirketlerden Cloud Computing hizmetini satın alıyorsunuz. Hizmetleri almak kullanmak da kolay. İstediğiniz zaman bırakabiliyorsunuzve kullandığınız kadar ödüyorsunuz. Ölçeklendirmek de oldukça kolay. Yani bu işler genel olarak paraya bakıyor :) Paranız varsa bulutların üzerinde yürümek çok kolay. Şimdiden Amazon, Sun, Microsoft gibi şirketler reklamlarını yapmaya başladılar. Zaten bu yazıyı da Sun Microsystems 'in mail kutuma gönderdiği dökümanlardan derleyerek yazıyorum. Cloud Computing alanında da kesinlikle açık kaynak, kapalı sistem gibi ayrımlar olacağa benziyor. Tabi burada sistemle ilgilenen, servisi satan şirket olduğu için linux yada windows hosting almak arasında ne kadar fark varsa servisler arasında da o kadar fark edecektir. Platformlardan çok markalar ön plana çıkacak gibi duruyor.

Uygulamada sıkıntılar da yok değil. Bir şirket Cloud Computing hizmeti veren bir şirketle anlaştı ve tüm sistemini cloud computing standartlarında kullanıyor. Bir süre sonra bizim Bulut hizmeti veren şirketimiz yağmur olarak yeryüzüne düştü ve ortada servis de kalmadı veri de. Böyle senaryolar karşısında kurumlar mağdur olmamak için tabiki büyük yazılım şirketleriyle çalışmak isteyeceklerdir. Bu durumda da sorunlar ortaya çıkabilir. Bulut da olsa sonuçta bir bilgisayar topluluğundan bahsediyoruz ve burada alt yapıdaki işletim sistemi büyük rol oynayacaktır. Yazılım devi bir şirket kendi çalıştığı kurumların vazgeçilmezi olabilmek adına bazı kapalı sistemlere yöneleceklerdir. Bu durumda servis aldığınız şirketi bırakıp başka bir şirkete sisteminizi taşımanız da zorlaşacaktır. Bu gibi senaryolar için Open Cloud Manifestoyu imzalamış olan şirketlerle çalışmak ortaya çıkacak sorunları bertaraf edebilir.

Diğer bir alan ise yazılım lisanslama. Belki 10 yıl sonra değil ama 40 yıl sonra tüm yazılımları servis olarak aldığımızı düşünelim. Crack, warez, serial, keygen gibi hileler son bulacaktır, tüm dinlediğimiz mp3lerimiz, izlediğimiz filmlerimiz birer servis olacak, ödediğimiz kadar yararlanacak, yararlandığımız kadar ödeyeceğiz. Tüm bilgisayarımızın , dökümanlarımızın internete taşınması olarak düşünebiliriz bunu. Tabi bunların gerçeklenmesi zor değil ama yaygınlaşması zor. Hala bazı kuruluşlarda milattan kalma yazılımlar kullanılıyor, kullanan da memnun , kullandıran da. Bu durumlarda özgürlükler devreye giriyor ve hizmet olarak özgürlük( liberty as a service) diyip insanları kendi seçenekleriyle başbaşa bırakmak kalıyor.

Perşembe, Eylül 17, 2009

Oracle Concept Guide

Oracle çalışmalarıma devam ederken SQL Fundamentals konusunda sadece SQL komutlarını görmekten sıkıldım ve daha effective(!) nasıl çalışılır diye araştırmaya başladım. Effective, efficiently, concurrency,consistency gibi kelimeleri Oracle çalışırken yüzlerce defa okuyorsunuz ve bir süre sonra olur olmadık yerlerde kullanmaya başlıyorsunuz. Oracle nasıl çalışılmalı konusunda yaptığım araştırmanın sonucu şöyle:

1. Oracle çok geniş bir konu. Örnek vermek gerekirse bir zamanlar microsoft.net frameworkün gerçekten çok geniş ve kapsamlı olduğunu düşünürdüm. Formlar ve uygulamalar Oracle denizinde sadece küçük bir ada. Bu kadar geniş bir konuda ve 20.000 sayfa döküman içerisinde çok okumak ve yaptığın işi seviyor olmak gerekli.

2. Başlangıç olarak önerilen ilk duraklardan birisi Oracle Concept Guide. Oracle dökümantasyonu içerisinde" A Guide to Guides" özelliğini taşıyor. Bağlantılarla konular hakkında derinlemesine bilgi alabileceğiniz gibi ilk etapta sistemi anlamak için okunması gereken 438 sayfalık mini kitap :)

3. Oracle Concept Guide okurken bir yandan da SQL Fundamentals sınavına hazırlanacak şekilde çalışmak mantıklı olabilir. Burası aslında bildiğimiz ya da bilmediğimiz SQL kısmı, üzerine oracle 'a özel konular da eklenmiş ve tam bir Oracle SQL kılavuzu.

4. Daha sonra ise Tom Kyte 'nin kitabı olan Effective Oracle by Design gelir demişler ve gerçekten inceleme imkanı bulduğum kitaba , bir an önce Concept Guide'ı bitirip başlamak istiyorum.

5. Effective Oracle by Design isimli kitabı okuduktan sonra yol haritası sıkıntımız ortadan kalkıyor çünkü kitap bu yönde de bilgi veriyor.

6. İş bu kadarla da bitmiyor. okuyorsunuz, okuyorsunuz , okuyorsunuz. Özellikle yanına biraz da Java katabilirsek çok daha güzel şeyler ortaya çıkacaktır. Bir de linux kısmı var tabiki. Oracle windows üzerinde tek thread olarak çalışıyor ve 300 mb kadar bellekte tek thread geziniyor. Linux işletim sisteminde ise parçalar halinde çok sayıda thread var. ilk görebildiğim izlenimlerim bunlar ama sanırım Oracle Uzmanı olmak , linux işletim sistemini de bilmeyi gerektiriyor.

Şimdilik bu kadar. Oracle çok büyük bir konu ve çok çalışma gerektiriyor. Bize de büyük işler lazım :) Oracle ve Java konusundaki yazılarıma yeri geldikçe devam edeceğim.