Facebook Çılgınlığı

Tam ne zaman olduğunu hatırlamıyorum ama posta kutuma düşen davet mailleriyle tanıştım Facebookla. İlk zamanlarda ne olduğuna bakmadan silsem de baktım hem herkesten geliyor hem de insanlar aralarında Facebook’ta şunu gördüm şu şunu yazmış vs. diye konuşmaya başlayınca bakalım neymiş diyerek üye oldum. Mantalitesi hoşuma gitti. Eski arkadaşları bulma, fotoğraflar ekleme, profil sayfaları vs. Ama içimden bir ses yakın zamanda bunun suyunun çıkacağını, profil foto gibi şeylerin suiistimale ne kadar açık şeyler olduğunu söylüyordu. Yine de artık Facebook a üye olduğum için davet mailleri kesilmişti, ben mutluydum.

Boş zamanın gözü kör olsun biraz kurcaladım sonraları. “Wall” uygulamaları popüler olmuştu. Ben de bilerek veya bilmeyerek bu uygulamaları eklemişim profilime. Herkes birbirine bir şeyler gönderme yarışına girmişti. İnternetten mahrum birkaç günden sonra mail kutumu açtım ve ne göreyim. bilmemneWall uygulamasından yüzlerce mail. Hepsini bir çırpıda sildikten sonra hemen Facebook’u açtım ve ayarlardan uygulamaların mail gönderebilme seçeneğini iptal ettim. Ayarlara girmişken gördüğüm ve beni uyandıran gizlilik sekmesinde de gerekli tüm ayarları yaptıktan sonra ilk üye olduğum sıralar içimde fısıldayan o ses yine konuşmaya başladı. Pek kulak asmadım.

Facebook doğal olarak boş durmuyordu. Baktı ki insanlar durmadan bir şeyler paylaşıyor. O halde bu işi uygulamalara bırakmamalıyım dedi ve yeni Facebook adı altında günümüzdeki görünümüne kavuştu. Tasarım değişiklikleri olabilir arada tam takip etmediğim için bilemiyorum ama bizim işimiz zaten işin görünen ve cilalı kısmıyla değil.

Bir de grup meselesi var. Facebook geliştiricileri muhtemelen insanlar tuttuğu takımı, memleketini desteklesin veya bir nevi sosyal platform oluşsun diye böyle bir özellik eklemişler. Biz ne yaptık. Bunun da suyunu çıkarttık. Çıkan suyu aşağıda detaylı olarak inceleyeceğiz.

Malumunuz ülkemizde ve dünyada işi gücü olmayan, “boş-beleş” olarak tabir edebileceğimiz bir “sürü” insan var. Her ne kadar İlber Ortaylı hoca insanlara sürü denmeyeceğini savunsa da bahsi geçen arkadaşlar aynı ve faydasız işleri yaptıkları için sürü diye hitap etmekte beis görmüyorum.

Yukarıda Facebook meselesinin suyunun çıktığını yazmıştık. Üşenmedim bu sudan örnek alarak laboratuara tahlile gönderdim. Sonucu da aşağıda sizlerle paylaşıyorum.

TAHLİL SONUCU

Facebook’u geliştirenlerin böyle bir düşüncesi var mı bilinmez (günahlarını almayalım) insanları akıl almaz bir biçimde kategorize ve afişe ediyor. Dini, etnik, politik her türlü alanda. Yakında anne kızlık soyadı bölümü de eklerlerse profile şaşmamak lazım. Facebook veritabanına yazılacak ufak bir sorgu ile örneğin:
XX.XX.XXXX tarihinde doğanlar,
Memleketi Y olanlar,
Z dinine mensup olanlar,
A politik görüşüne sahip olanlar,
B takımını tutanlar,
C sanatçısının hayranları,

Gibi birçok sonuca ulaşılabilir. Ne var ki bunda bunlar gizli bilgiler değil ki? Diyecek olabilirsiniz. Bunlar tek tek ele alındığında gizli bilgiler değil. Ama milyonlarca insanın bu şekilde envanterini tutmanın değerini en masumane şekliyle reklam sektöründekilere sorabilirsiniz.

Yukarıdaki madde buzdağının görünen kısmını anlatıyor. Maalesef mesele sadece profil bilgilerinden ibaret değil. Paylaşılan videoların, eklenen yazıların hatta mesajlaşmaların her birisi bu amaçla kullanılabilir. Beni paranoyak olarak görebilirsiniz fakat nedense Facebook gizlilik metninde açık açık “garanti altına alamayız” diye belirtmiş. Ben sadece ihtimali söylüyorum.

Güvenlik kısmını tamamen es geçelim. Grup meselesini ele alalım. İnsanların herhangi bir amaçla grup açıp toplanması gayet doğal. Ama bunu namus meselesi haline getirenler var. “Davet etmeyeceksen üye olma, tüm sülaleni davet et, en yüksek üye sayısı bizde” gibi saçma sapan yazılarla her gün defalarca karşılaşmak mümkün adı geçen sitede. Merak ediyorum mesela 10000 üyeyi geçen grupların kurucularına ödeme yapıyor mu Facebook? Bu adamlar neyin kavgasını yapıyor. Sanmıyorum. Yazının başında da belirttiğim gibi boş zaman fazlalığının gözü kör olsun.

Suda görülen bazı türlerde de yaptığı her şeyi Facebook durumunda belirtme eğilimi görülmüştür. Örnek olarak “@kahvaltı” “@spor” “@havuz” “@zart” “@zurt” veya “bilmemnerede havuz sefasında” ifadelerini gösterebiliriz. Nispet mi yapıyorsun bize anlamadım ki? Madem havuzdasın git adam akıllı çim (genç arkadaşlar için çimmenin anlamı). Ne işin var feysbukta meysbukta. “@” olayına değinmeden geçemeyeceğim. Bilmeyenler için açıklayalım. İngilizcede “de-da” ekine tekabül eden “At” öneki yerine okunuşu aynı olan “@” işareti kullanılıyor internet dilinde. Hadi İngilizce konuşan milletler yazar anladım, hadi etrafında bir yvar facebookta maebookyaparlar. bununla met etmektedirler. bu ın da bu hastabancı olmadığı halde İngilizce kullanmak görgüsüzlüğü gösterenleri de anladım. “@kahvaltı” yani “at kahvaltı” ne demektir anlayan varsa beri gelsin bana da anlatsın.

Tıbbın herhangi bir dalında incelendiler mi bilmem ama bir de her gördüğünü paylaşan, her gördüğünü beğenen, her gördüğüne yorum yapan tipler var. Bunlar da genel olarak yukarıda bahsettiğimiz sürüye dâhil olmakla beraber zaman zaman işi gücü olan aklı başında insanların da bu hastalığa tutuldukları görülmektedir. Yan etkileri olarak aklı başında çevrelerce itibar kaybına uğrayabilirler.

Son olarak klinik vaka olarak değerlendirebileceğimiz sevgiye aç, şefkate muhtaç memleketimizin bıçkın “eril cinse mensup kişi”’lerinden söz etmemiz gerekiyor. Delikanlı veya benzeri bir sıfat kullanmadım zira yaptıkları hareketlerin delikanlılığa sığan bir tarafı bulunmamakla beraber delikanlılık müessesinin yozlaşmasına hizmet etmektedirler. Bu arkadaşlar her gördükleri güzel kızı arkadaş olarak ekleyip genelde taciz olarak tabir edebileceğimiz mahiyette mesaj gönderir, yorum yaparlar. Bununla kalmayıp profil fotoğraflarına bilumum “Kurtlar Vadisi”, “Deli Yürek” ve benzeri dizilerin karakterlerinin çakması, fotoğraflarını koyarlar. Bununla da kalmaz bu profillerle yabancı ünlü oyuncuların hayran sayfalarında büyük harflerle burada dile getiremeyeceğim yorumları yaparlar. Diğer yaptıklarını “amaaaan” boş verebiliriz. Ama bu son hareketle ülke imajımızı zedeliyorlar. Buradan yetkililere sesleniyorum. İbret-i âlem olsun diye sallandırmak lazım birkaç tanesini taksim meydanında.

SON KELAM

Belki de teknolojiyle bazı ülkelere nispeten geç tanıştığımız için bazı şeyleri henüz sindiremediğimiz kanaatindeyim. Bunu Türk milletiyle özdeşleştirmiyorum. İlla ki her millette söz konusudur bu durumlar ama ben meselenin bize bakan yönünü ele aldım. Birilerinin bu gidişe dur demesi gerektiğini söylemek istesem de nasıl olacağını ben de kestiremediğim için söylemiyorum. Ama bir şekilde “gereçleri işlevine uygun kullanmak” konusunda bilinçlenmemiz gerektiğini söyleyebilirim.

Bu bilinçten uzak kalmamanız dileğiyle…


Java’ya Giriş-2 Nesneye Yönelik Programlama

Eğer daha önce nesneye yönelik bir programlama dili ile çalışmadıysanız ilk bakışta Java’yı anlamanız zor olabilir. Bu yazımızda OOP(Object Oriented Programming-Nesneye Yönelik Programlama) kavramını irdeleyeceğiz.

Nesne nedir?

Nesnenin anlamı aslında günlük hayatta kullandığımızdan pek farklı değil. Nasıl bir masa, sandalye, dolap, araba nesneyse, nesneye yönelik dillerdeki nesneler de bunlara benzer.

Peki, neden nesne? Java dokümantasyonunda bunun için 4 sebep belirtilmiş.

  1. 1. Modülerlik:

Bir nesnenin kaynak kodu diğer nesnelerden ve programdan bağımsız olarak yazılabilir, değiştirilebilir. Mesela matematikle ilgili bir programda dört işlemi yapan bir nesnenin içine kök alma, logaritma gibi özellikleri eklememiz için tüm programın kodunu değiştirmemiz gerekmez. Sadece o nesneyi değiştirerek işimizi halledebiliriz.

  1. 2. Bilgi Saklama:

Dış dünya bir nesnenin sadece metotlarına erişebilir. Böylelikle kendi iç uygulama detayları gizli kalır.

  1. 3. Kodu Tekrar Kullanabilme:

Eğer bir nesne daha önceden siz veya başka bir geliştirici tarafından yazılmışsa siz bunu diğer uygulamalarınızda da kullanabilirsiniz. Sürekli aynı metotları kullanıyorsanız farklı programlarda bunları bir sınıf içinde toplayıp tekrar kullanabilir veya bunları satarak ticari gelir elde edebilirsiniz.

  1. 4. Hata Ayıklama Kolaylığı:

Gerçek hayattan örnek vermek gerekirse mesela bir bisikletin fren nesnesi sorunlu ise fren nesnesini değiştirerek bu sorunu halledebilirsiniz. Programda da aynı şekilde sadece sorunlu olan kısmı onararak veya değiştirerek sorunları giderebilirsiniz. Bu programın bakımında ve hata ayıklamada kolaylık sağlar,

Yukarıdaki dört madde Java geliştiricilerinin gözünden nesneye yönelik program geliştirme konseptinin faydalarını anlatıyor. Aslında ilk başta bazı şeyler havada kalsa da prosedürel bir programlama dilinden sonra nesneye yönelik bir dille program geliştirmeye başladığınızda bu kolaylıkları uygulamalı olarak göreceksiniz.

Class (sınıf) Nedir?

Gerçek hayatta nesneleri sınıflandırırız. Mesela bisiklet sınıfını ele alalım. Bir bisikletin hız, ağırlık ve vites değişkenleri vardır. Ayrıca bu bisikletin hızı ve vitesi değişebilir. Şimdi biraz kod yazalım.

class Bisiklet

{
int hiz;
int agirlik;
int vites;
void hizdegistir(int yenihiz)
{
hiz=yenihiz;
}
void vitesarttir()
{
vites++;
}
void vitesazalt()
{
vites--;
}
public Bisiklet(int a)
{
hiz=0;
vites=1;
agirlik=a;
}
}

Java dilinde bisiklet sınıfını oluşturduk. Şimdi ne yaptığımızı açıklayalım. Class Bisiklet diyerek yeni bir class oluşturduk. Sonra bu sınıfın içinde integer türünden hız, vites ve ağırlık değişkenlerini oluşturduk. Daha sonra bu değişkenler üzerinde işlem yapmak için gerekli hız değiştirme , vites arttırma ve vites azaltma metodlarını oluşturduk. En sonda tanımladığımız metot ise kurucu metot. Yani bu sınıftan bir nesne oluşturulduğunda yapılacak işlemlerin (ilk değerleri verme gibi) belirtildiği metot. Bu metot class ile aynı ismi taşımak zorunda. Classımızı oluşturduk. Şimdi bunu nasıl kullanacağımıza bakalım.

public static void main()

{

Bisiklet bisikletim1=new Bisiklet(10);//Bisiklet classından yeni bir object tanımlıyoruz. Kurucu metot bir parametre aldığı için parametre olarak ağırlık değerini gönderiyoruz.

bisikletim1.hizdegistir(50);//hizdegistir metoduna 50 parametresini göndererek hız değerini 50 yapıyoruz

bisikletim1.vitesarttir();//vites değişkenini bir arttırıyoruz.

}

Kalıtım (Inheritance)

Kalıtım bir sınıftan benzer başka sınıfların oluşturulmasına denir. Az önceki örnekten devam edelim. Biz bisiklet sınıfını oluşturduk ama birçok bisiklet çeşidi var. Dağ bisikleti, yarış bisikleti, iki kişilik bisiklet gibi. Bunlar arasında farklılıklar olmasına rağmen aslında bunların hepsi bisiklet sınıfının alt kümeleri. Yani hepsinin hız değeri, vites değeri, ağırlığı vs. özellikleri var. Nesneye yönelik diller bir sınıftan bir başka sınıf türetilebilmesine izin verir. Bu durumda bisiklet classına superclass diğerlerine ise sub-class ismi verilir.

Kod kısmına bakacak olursak bir sınıftan başka bir sınıf türetmek için extends sözcüğünü kullanırız.

class dagBisikleti extends Bisiklet

{

//bisiklet sınıfına ek olarak yazılacak yeni değişken veya metotlar

}

Classları yazarken bu classtan başka bir class türetilmesini engelleyebilir, bazı metot veya değişkenleri alt sınıflardan saklayabiliriz. Bu konuyu ilerleyen makalelerde ele alacağız.

Arayüzler (Interfaces)

Aslında çok farkında olmasak da günlük hayatımızda bir çok arayüz kullanıyoruz. Karışık yapılarda işleyen makinelerin bizim kullanmamız için tasarlanmış ve basite indirgenmiş kontroller içeren kumanda panelleri buna örnek olarak gösterilebilir. Şimdilik giriş aşamasında bu kadarını söyleyelim. İleride detaylı oalrak inceleyeceğiz bu konuyu.

Özet

Nesneye yönelik programlamanın temel kavramlarına Java penceresinden baktık. Burada belki nesne ve sınıf kavramları karışabilir. Onu da şu şekilde açıklığa kavuşturabiliriz. Nesne sınıfın bir örneğidir. Yani bir sınıf tanımlanır ve bu sınıftan bir çok nesne üretilir.

Bu makalede işin detayına ve kod kısmına çok girmeden sözel olarak nesneye yönelik programlama konseptini açıklamaya çalıştık. Burada bahsettiğimiz kavramları ilk defa görüyorsanız sizi korkutabilir. Fakat ileride detaylı olarak incelediğimizde daha iyi anlayacağınızdan emin olabilirsiniz.

Yavuz Selim Bilgin


Network’e Giriş

Network Ne Demek?

Network kelimesini Türkçeye ağ olarak çevirebiliriz. Ama genel terminoloji İngilizce olduğundan ve Türkçeye çevrildiğinde ortaya çok da anlaşılmayan ifadeler çıkmasından dolayı network demeye devam edeceğiz.

Network kısaca iki veya daha fazla bilgisayarın birbirlerine bağlı olduklarında oluşturdukları yapı demektir. Daha açık olarak eğer birbirine bağlı bilgisayarlar varsa bunlar bir network oluşturmuş diyebiliriz.

Bilgisayarlar birbirlerine neden bağlanırlar? Bunun çok fazla sebebi var ama olaya tersten bakarsak şunu söyleyebiliriz. Günümüzde bir networke bağlı olmayan bir bilgisayarın yapabileceği işler bundan on yıl önce, bilgisayar teknolojileri şu gün olduğundan çok daha gerideyken yapabildiklerinden çok da farklı değildir. Bir atasözünde “bir elin nesi var iki elin nesi var” denildiği gibi bilgisayarların birbirleriyle haberleşebilmesi günlük yaşantımızda bile bir çok kolaylık sağlıyor.

Network Çeşitleri

Temel olarak iki çeşit network sistemi vardır diyebiliriz. Birincisi “peer to peer” veya kısaca “P2P” dediğimiz, Türkçeye “eşteneşe” olarak aktarabileceğimiz, bilgisayarların birbirleriyle doğrudan, herhangi bir ana bilgisayar olmadan haberleşebildikleri sistem. Örnek olarak günümüzde yaygın olarak kullanılan “Instant Messaging-Anlık Mesajlaşma” veya “Torrent” uygulamalarını gösterebiliriz. İkincisi ise Client-Server mimarisi olarak geçen, bilgisayarların bir ana bilgisayar aracılığıyla birbirleriyle iletişim kurabildikleri ve en güzel örneği “web” olan sistem. Webde bir siteye erişmek için öncelikle adres satırına adresi yazarız. Ardından DNS dediğimiz server tarafından o adresin hangi IP adresini gösterdiğini öğrenip o IP adresine sahip serverı buluruz. O server bize istediğimiz sayfayı verir. Bu örnekte biz client-istemci DNS ve barındırıcı makine ise server-sunucu rolüne güzel birer örnek oldu.

Ağ Protokolleri

Protokolü aslında bir haberleşme usülü olarak ele alabiliriz. Bu konuda yaygın kullanılan bir örneğe bakalım. İki insan iletişim kuruyor. İlk aşamada selamlaşırlar. Sonra diğer konuşmalar geçer. En başa gidersek bir insanın diğerine önce kendisini tanıtması gerekir. Ağ protokolleri de buna benzer. Mesela internet tarayıcıları sayfaları görüntülemek için serverdan “http-hyper text transfer protocol” protokolünü kullanarak ister. Web programcıları dosyalarına servera “”ftp-file transfer protocol” kullanarak aktarır. Tabi ki bunlar uygulama katmanının protokolleri olduğu için bu protokollerin gereklerini kullandığımız uygulamalar yerine getirir. Katmanları ileride inceleyeceğiz.

İnternet Nedir?

İnternet olarak adlandırdığımız şey aslında büyük bir networkden ibarettir. Öyle büyük bir network ki tüm dünyadaki bilgisayarlar bu networke bağlı. Biz evimizden bir ISP kullanarak (TTNET, Turksat vs.) internete bağlanıyoruz. Bizim evimizden çıkan kablo önce bu ISP’nin santraline gidiyor. Orada o çevredeki tüm müşterilerin kablolarıyla birleşerek şehrin merkez santraline gidiyor. Burada ise tüm şehirdeki müşterilerden gelen sinyaller birleşerek bölge santraline gidiyor. Bu çember bir şekilde tamamlanıyor ve biz internet denilen network aracılığıyla başka bir yerden internete bağlı herhangi bir bilgisayarla veri alışverişi yapabiliyoruz.

Erişim Teknolojileri

En başta bunları üçe ayırabiliriz.
Yerleşim yerine ait erişim
Şirket erişimi
Kablosuz erişim
Yerleşim Yerine Ait Erişim

Bir uç sistemi sınır yönlendiricisine bağlar. Yani örnek verecek olursak bizim evimizdeki bilgisayar veya bilgisayarların oluşturduğu ağı internete bağlayan ağlar diyebiliriz. Çok değil 4-5 yıl önce Dial-Up dediğimiz sistemle 56 kbps hızında bağlanıyorduk internete. O devirde 700-800 mb boyutundaki dosyaları indirmek hayaldi. 4-5 mb lık dosyaları büyük bir sabırla (eğer bağlantı kesilmezse) indirebiliyorduk. Ve basit bir web sayfasının açılması bazen dakikalar alıyordu. Bununla birlikte internete bağlı olduğumuz zaman telefon sürekli meşgul oluyordu. Dolayısıyla çoğu zaman internet için ikinci bir telefon hattına ihtiyaç duyuyorduk. Dialer denen virüsler dünyanın öbür ucunu arayarak faturalarımızı şişiriyordu. Ne yazık ki DSL denilen teknolojinin asimetrik olanıyla tanıştık ve bu dertlerden kurtulduk. Peki ne demek DSL? Asimetrik DSL nasıl oluyor? DSL PSTN (bildiğimiz sabit telefon) hizmeti verile bakır kablolar üzerinden verilen ve mesafeye bağımlı yani santral ile istemci arasındaki mesafeye göre hızda ciddi düşüşler yaşanabilen bir bağlantı çeşidi. Asimetrik DSL yani ADSL ise bu bağlantının bant genişliğini indirme ve göndermeye yani yaygın deyişle upload ve downloada eşit olarak ayırmayan çeşidi. Son kullanıcı dediğimiz kullanıcılar internetten genelde bir şeyler indirdiği çok nadir olarak bir şeyler gönderdiği için böyle bir ayarlama yapılmış. DSL iletişim hattını üç ayrı banda böler. 50 kHz ile 1 MHz arası yüksek hızlı aşağı akım kanalı, 4kHz ile 50 kHz arası orta hızlı yukarı akım kanalı, 0 ile 4 kHz arası ise iki yünlü telefon kanalı. Bu ayrım sayesinde aynı hat üzerinden aynı anda bu üç hizmet de sağlanabilir. Teorik olarak ADSL maksimum 8 mbps hız sunar. Bir başka DSL türü olan VDSL çok daha yüksek hızlar sunabilmesine rağmen artan mesafeyle sunulabilen hız çok fazla düştüğünden çok yaygın olarak kullanılmamaktadır. Diğer bir bağlantı çeşidi ise HFC (Hybrid-Fiber Coaxial) . Ülkemizde Kablonet olarak bilinen bu bağlantı çeşidinde sinyaller kablo televizyon şebekesinin kullandığı HFC kablo üzerinden sağlanır. DSL ile HFC arasındaki en büyük fark DSL ev ve ISP arasında o kullanıcıya adanmış bir hat sunarken HFC o bir bölgedeki kullanıcıların hepsini aynı hat üzerinden santrale bağlar. Fakat HFC’nin sunduğu bant genişliği DSL’in sunduğundan çok daha fazla olduğundan eğer ISP kullanıcıları mantıklı bir şekilde gruplandırırsa HFC bu dezavantajını ortadan kaldırıyor.

Bir başka erişim şekli ise uydu erişimi. Herhangi bir ISP’nin hizmey vermediği kırsal bölgelerde veya çok yüksek bant genişliğine ihtiyaç duyulan (üniversite gibi) yerlerde doğrudan bir uyduya bağlanarak internet hizmeti almak mümkündür. Çok yüksek bant genişliği sunmasına rağmen çok yüksek işletme maliyeti yüüznden fazla rağbet görmemektedir.
2. Şirket Erişimi

Bir kurum içindeki bilgisayarların hepsini birbirine ve internete bağlamak için oluşturulan sisteme LAN (Local Area Network-Yerel Ağ) denir. Günümüzde yaygın olarak Ethernet teknolojisi kullanılmaktadır. Şu anda Ethernet teknolojisi 1gbps a kadar hız sunabilmekle beraber genelde kullanılan sistemler 100 Mbps hızını desteklemektedir.
3. Kablosuz Erişim

Günümüzde bilgisayarların boyutlarının küçülmesi ve mobil yaşantı kavramının önemini arttırmasıyla beraber kablolardan kurtulup kablosuz özgürlüğün tadını çıkartmaya başladık. Artık bir kafede, restoranda, otobüste seyahat ederken dizüstü bilgisayarımız, Pda’mız veya cep telefonumuzla internete bağlanabiliyoruz. Kablosuz ağ temel olarak belirli bir alana sinyal gönderebilen bir sitasyon aracılığıyla iletişimi gerçekleştirir. Bu istasyon bir kablo ile internete bağlıdır ve bu kablo üzerinden aldığı hizmeti kablosuz olarak bağlanan cihazlara paylaştırır.

Wi-Fi olarak da bilinen IEEE 802.11 teknolojisi şu anda hayatımızda ciddi kolaylıklar sağlamaktadır. a/b/g gibi değişik tipleri bulunan bu teknolojinin en yaygın olarak kullanılanı olan IEEE 802.11g 54mbps bant genişliği sunmaktadır.

GSM altyapısı üzerinden verilen 3G servisleri sayesinde kullanıcılar GSM hizmeti verilen herhangi bir bölgeden 3G destekleyen mobil telefonları aracılığıyla 1mbpsi geçen bir hızla internete bağlanabilmektedir. Her ne kadar ücretlendirmesi pek kullanıcı dostu olmasa da çok geniş bir kapsama alanı sunmasından dolayı özgürlükleri katlayan bir teknolojidir.

Son olarak IEEE 802.16 olarak bilinen WiMAX teknolojisinden söz edelim. Henüz yaygın olmayan ve geliştirme aşamasında olan bu teknoloji kilometrelerce çapta 10mbpsa kadar hız sağlamaktadır.

Bu makalede bilgisaar ağlarına girişin ilk kısmını ele aldık. Gelecek makalede fiziksel ortam,anahtarlamalar, gecikmeler ve katmanlı mimariye göz atacağız.


Java’ya Giriş

Fotografçilar ikiye ayrilir. Bir kismi kesinlikle Nikon derken diger kisin ise Canon’dan vazgeçemez. Ben piyasayi da buna benzetiyorum. Istisnalar disinda Java platformunda çalisip .Net in de hakkini vermek lazim sunu sunu iyi yapiyorlar diyen, veya .Net ile çalisip Java ile ilgili güzel sözler eden birisini henüz görmedim. Aslinda iki tarafin da belli basli klasik tezleri var. Onlari söyleyip duruyorlar. Tabi ki isin hakkini veren insanlar vardir fakat ben genel profil açisindan bu degerlendirmenin dogru olduguna inaniyorum.

Bir süredir siki fiki oldugum. Net’le olan serüvenime kisa bir ara verip Java semalarina dogru bir yolculuga çikma düsüncesi aklima uzun zamandir gelip gelip gidiyordu. Ama bu sefer basardim sanirim. Bir gece vakti gerekli programlari bilgisayarima yüklemek suretiyle baslamis oldum.

Internet üzerinde.Net ile ilgili çok fazla makale vs. kaynak var. Fakat Java ile ilgili özellikle de Türkçe doküman aradiginizda maalesef ayni bollukla karsilasmiyorsunuz. Bunu Google üzerinden yapacaginiz küçük bir deneyle de anlayabilirsiniz.

Ben de bu serüveni hem ögrendigim seylerin üzerinden geçmek hem de daha sonra ayni yolu izleyeceklere kolaylik olmasi açisindan paylasmaya karar verdim.

Helva yapmak için un,yag,seker bunlarin yaninda tencere,kasik ve ocak ayrica bu islemi gerçeklestirecek bir asçiya ihtiyaç oldugu gibi Java ile program yazmak için de bazi seylere ihtiyacimiz var. Bu yaziyi okudugunuza göre asçi konusunda sikintimiz yok. Simdi tencere tava konusunu halledelim.

Yazdigimiz kodlari derlemek için öncelikle JDK(Java Development Kit) in bilgisayarimizda kurulu olmasi gerekli. (Indirmek için tiklayin.)

Kodlari Notepadde yazip komut satirindan derleyebilecegimiz gibi (JDK kurulu olmak kaydiyla) bir IDE kullanarak islerimizi kolaylastirabiliriz. Isin mantigini görmek amaciyla ilk örnegimizi ilk yolla derledikten sonra çok genis olmayan Java IDE yelpazesinden benim kendime en yakin gördügüm IDE olan NetBeans’i kullanacagiz.(Indirmek için tiklayin.)

Tencere,tavayi hallettik. Ocak olarak da bilgisayarimizi kullaniyoruz. Ne kaldi un,yag,seker,su vs. Bunlari da bu yazi dizisinde beraber kendimiz üretecegiz.

Bu arada asçiya da deginmek lazim. Verecegimiz tarifi yapacak asçinin bazi özelliklere sahip olmasi lazim. Öncelikle temel bilgisayar bilgisi. Sonra temel programlama ve algoritma bilgisi. Tercihen temel C,C++ veya C# bilgisi fena olmaz. Çünkü kim kimin kopyasi bilemiyorum fakat c# ile aralarinda büyük bir benzerlik var.

Neden Java konusuna girmiyorum. Bu yaziyi buraya kadar okudugunuza göre geçerli bir veya birkaç sebebiniz var demektir.

Simdi biraz terimler üzerinde duralim. Netbeans download sayfasini açtiysaniz bir sürü seçenekle karsilastiniz ve muhtemelen de ne farklari oldugunu anlamadiniz. Ben de ilk gördügümde anlam verememistim.

Bazi kisaltmalara açiklik getirelim.

Java SE:

Java Standart Edition

Java EE:

Java Enterprise Edition

Java FX:

Zengin internet uygulamalari gelistirmek için kullanilan bir yazilim platformu (wikipedia)

Java ME:

Java Mobil Edition

Açikçasi serüvenin basinda oldugumuz için bazi seyleri ben de net olarak bilemiyorum fakat su anda isimizin Java SE ile oldugunu söyleyebilirim. Siz yine de NetBeans’in Java veya Full sürümlerini indirebilirsiniz.

Simdi gelelim Java’nin çalisma mantigina. JVM(Java Virtual Machine) kavramini duymussunuzdur. Aslinda java programlarimizi bilgisayarimiz üzerinde çalisan bir nevi sanal makine olan jvm çalistirir. Platform bagimsizligi denen hadisenin kökeninde de bu var zaten.

Yukaridaki resimler sanirim temel mantigi anlatiyor. Zaten ilerleyen süreçte bunu daha iyi anlayacagiz.

Programlarin kurulum asamalarini yapabileceginizi düsünerek “Hello World” uygulamamiza geçelim.

public class HelloWorld
{
public static void main(String args[])
{
System.out.println("Selam Dünyali Biz Dostuz");
}
}

Ilk olarak public olan ana sinifimizi olusturuyoruz.

Main metodumuz dogal olarak public ve static olmak zorunda. Args[] ise komut satirindan programa ulasirken parametre göndermek için kullaniliyor.

C#daki System.Console.WriteLine() metodunun karsiligi olarak burada System.out.println() metodu bulunuyor. Adindan da anlasildigi üzere tek satirlik yazi yazmaya yariyor ve yine dogal olarak String cinsinden parametre aliyor.

Simdi not defterimizi açarak bu kodumuzu yazalim. HelloWorld.java olarak kaydedelim. Burada dikkat etmemiz gereken nokta classimizla dosya isminin birebir ayni olmasi.

Resimde yolunu gördügünüz (tabi ki bu sizin kurulumunuza göre degisecektir) klasörün içindeki javac.exe(JAVACompiler) dosyasina parametre olarak .java dosyamizin yolunu göndererek HelloWorld.class dosyamizi olusturuyoruz.

Dosyamizin bulundugu yoldayken java dosyaadi.class komutunu girdigimizde programimizin çalistigini görüyoruz.

Hayirli olsun. Java dünyasina selamimizi verdik. Her seferinde bu kadar ugrasacak miyiz? Hayir. IDE ler bu is için varlar. Bundan sonraki örneklerimizi NetBeans kullanarak yapacagiz.

Sanirim simdilik bu kadar yeter. Bir sonraki makalede görüsmek üzere en iyi dileklerimle…