Ev kullanıcıları için Neden Linux?

Kasım 24th, 2009 yapan Yavuz Selim Bilgin No comments »

Bundan sonra Linux ve Java ile ilgili yazılarıma turkcejava.com üzerinden devam edeceğim. Buraya ise linklerini ekleyeceğim.
Ev kullanıcılar için Neden Linux? yazısına buradan ulaşabilirsiniz.

Blog Yazma İşini Becerebilecek miyim?

Ekim 18th, 2009 yapan Yavuz Selim Bilgin 3 comments »

İnternette bir çok blogu RSS ile takip ediyorum. Ve yazarlarını imrenerek takip ediyorum. Kimisi 2-3 yıldır kimisi 4-5 yıldır ziyaretçileriyle bilgilerini paylaşıyor. Ve bunu düzenli olarak yapıyorlar. Bense çeşitli zamanlarda çeşitle bloglar oluşturup hiçbirisini de becerememiş birisi olarak imreniyorum haliyle.

Bu site açıldığından beri belki 10. kez sistem değiştirdim. En son dün itibariyle Wordpress kurdum. Ve bundan sonra da eğer bir gün kendime bir blog yazmazsam değiştirmeyi düşünmüyorum. Sanırım bu sefer güzel de oldu. Peki yazacak mıyım? Tabi ki zaman gösterecek ama elimden geldiğince yazmaya çalışacağım. Havadan, sudan, boş şeylerden yazı çıkarma yeteneğim pek olmadığı için bu konuda çok başarılı değildim. Ama kararlıyım bundan sonra hem sık hem de dolu yazılar yazacağım. :)

Klavye Manyakları İçin Bulunmaz Hint Kumaşı-Launchy

Ekim 18th, 2009 yapan Yavuz Selim Bilgin 1 comment »

Önceki yazı çılgınlıkla ilgiliydi bu yazı da manyaklık diye başlıyor. Biliyorum iyi bir tesadüf
değil ama yapacak bir şey yok.

Launchy adlı bir program-cıktan bahsetmek istiyorum. Herhangi bir klavye kısayolu
atıyorsunuz ve o kısayolu kullandığınızda karşınıza ufacık bir pencere ve bir metin
kutusu geliyor. Aslında çoğu zaman kısayolla birlikte istediğiniz şeyi yazıp enterladığınız
için görmüyorsunuz bile bu ekranı. Siz ilk harfleri yazmaya başladığınızda launchy
çoktan ne istediğinizi anlamış oluyor. Programın yapımcıları Türk olsaydı güzel bir
slogan olurdu. Launchy-”Leb demeden leblebiyi anlayan program”

Launchy’yi bu linkten indirebilir
ve hemen kullanmaya başlayabilirsiniz.

Klavyeniz dert görmesin…

Facebook Çılgınlığı

Eylül 17th, 2009 yapan Yavuz Selim Bilgin No comments »

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 Ögreniyoruz-2 Nesneye Yönelik Programlama

Temmuz 9th, 2009 yapan Yavuz Selim Bilgin No comments »

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ş-1

Temmuz 8th, 2009 yapan Yavuz Selim Bilgin No comments »

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
  1. 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.

  1. 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.

  1. 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 Öğreniyoruz-1

Temmuz 1st, 2009 yapan Yavuz Selim Bilgin No comments »

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…

Yavuz Selim BILGIN

Bilgisayar Mühendisliği Üzerine-1

Haziran 16th, 2009 yapan Yavuz Selim Bilgin No comments »

Bilgisayar kelimesi Türkçe adına büyük bir kazanım. Bu vesileyle Aydın Köksal’a tekrar teşekkür etmek istiyorum. Kendisi 2500 üzerinde bilişim terimini Türkçeleştirmiş bir dilbilimci ve kendi deyimiyle Türkiye’nin ilk “Bilgisayar Mühendisi”. Ayrıntılı bilgiye buradan ulaşabilirsiniz. Her ne kadar dilimize yerleşmesi yıllar almış olsa da bizi “kompüter”hatta “gompütür” gibi Çin malı sahte pillerin üzerindeki “Panasonic” türevleri gibi “saçma” kelimeleri kullanmaktan kurtaran bir kelime bilgisayar.

Bilgisayar kelimesi dilimize yerleşmiş yerleşmesine de bilgisayarın anlamı, ne demek olduğu, ne iş yaptığı gibi konularda hala ciddi sıkıntımız var. Doğal olarak “Bilgisayar Mühendisi” kavramıyla ilgili de aynı şekilde sıkıntılar baş gösteriyor.

Kimi zaman bilgisayar satıcısıyla, kimi zaman programcıyla, hatta kimi zaman ziraat mühendisleriyle aynı kefeye konulan bilgisayar mühendisleri, genelleme yapmak istemiyorum ama maalesef kendileri de bir tanım yapabilmekten aciz kalıyor çoğu zaman.

Biraz araştırma yapalım. Google ustaya soruyoruz ilk sırada Wikipedia geliyor. Bakalım wiki ne demiş.

Bilgisayar Mühendisliği , Elektrik Mühendisliği ve Bilgisayar Bilimini kapsayan, temel olarak yazılım ve donanım üzerine birçok konu ile ilgilenir. Ayrıca matematik ile ilgili birçok konu içerir.

Bilgisayar mühendisleri, programlama dilleri, yazılım tasarımı ve yazılım – donanım entegrasyonu eğitimi alırlar. Programların neyi yapabileceği neyi yapamayacağı (bk. Hesaplanabilirlik), programların belirli bir görev üzerinde nasıl etkili bir performans gösterebilecekleri (bk. algoritma ve karmaşıklık), programların saklanmış bir veriyi nasıl yazıp okuyabilecekleri (bk. veri yapıları ve veritabanları), programların nasıl daha akıllı çalışabilecekleri (bk. Yapay zeka),insan ve programların birbirleriyle nasıl bir iletişim içerisinde olacakları (bk. insan bilgisayar etkileşimi ve kullanıcı arayüzleri) konuları üzerinde ve ASIC, FPGA, devre tasarımı ile donanım-yazılım entegrasyonu alanlarında çalışırlar.

Devam ediyoruz. www.bilgisayarmuhendisleri.comsitesi ise işin donanım tarafını tamamen atlayarak şöyle bir tanım yapmış.

Bilgisayar mühendisleri genel olarak bilgisayar programı yazarlar. Yani oynadığınız oyunları, Word’ü Excel’i Windows’u ya da bir muhasebe programını da bu şekilde yazıyoruz… Yazarlar diyorum çünkü program yazmak, yazı yazmak şeklindedir.

Ve son olarak ODTÜ’de bir öğretim görevlisinin sitesine bakalım. Uzun olduğu için buraya yazmıyorum. Buradan ulaşabilirsiniz yazıya.

Tanımlara baktık. Aslında benim bu konuda daha güzel bir fikrim var. Örnek bir diyalogla bunu anlatmaya çalışalım.

Meraklı Vatandaş(MV) ve Bilgisayar Mühendisi adayımız(BM) otobüste yan yana seyahat etmektedir.

MV-Yolculuk nereye hemşerim?

BM-İstanbul.

MV-Öğrenci miyiz?

BM-Evet.

MV-Bölüm neydi?

BM-Bilgisayar Mühendisliği.

MV-Aaa ne güzel. Benim oğlan da seneye sınava girecek. Gece gündüz bilgisayar başında kerata onu da mı bilgisayar mühendisi yapsak.

BM-Yok aslında çok alakalı şeyler değil.

MV-Nasıl yani? Siz de bilgisayarla oynamıyor musunuz? (bu oynama kısmına ayrıca değineceğiz)

BM-Yok biz daha çok işin tasarım kısmıyla ilgileniyoruz.

MV-Tasarım derken?

BM-Mesela makine mühendisini düşünün. Ne iş yapar makine mühendisi?

MV-Ne yapacak makine yapar.

BM-Evet. Makine Mühendisi makineyi tasarlar. Kullanan ise Makine Operatörüdür. Makine bozulduğunda tamir eden ise Makine Teknisyeni. Aynı şekilde bilgisayarı tasarlayan mühendis, kullanan operatör, bakım ve tamirini yapan ise teknisyendir diyebiliriz. Ha bir de bunların alt alanları var. Mesela en temel olarak “Yazılım” ve “Donanım” olarak ayırabiliriz. Gerçi ülkemizde donanım alanında çalışma imkanı pek olmasa da ülkemizde yetişmiş olup dünyada bu piyasada çalışan bir çok mühendisimiz mevcuttur.

MV-İyi diyorsun güzel diyorsun da peki benim abimin oğlu var bu programcılık mı ne okuyor. Geçen bayram bize geldiğinde o da böyle bir şeyler diyordu. “Pororam” mı ne yapıyorlarmış. Onlar ne oluyor.

BM-Onlara da aslında bir bakıma teknisyen diyebiliriz. Şimdi az evvel dedin ya makine mühendisi makineyi yapar diye. Ben de dedim ki makine yapmaz. Makinenin tasarımını yapar. Yazar çizer her şeyini hazırlar. Fabrikada onun yazdığını çizdiğini uygulayan teknisyen başkadır. Mühendis tulumu giyip de torna tezgahının başına geçmez yani kolay kolay. Tam olarak aynı şey olmasa da böyle örnekleyebiliriz. Ama şunu unutmamak lazım. Bilgisayar çok çabuk gelişen bir teknoloji ürünü. Ve internet denilen deryada sayısız kaynak var. Yani mesela yazılım alanında kendini çok iyi geliştirmiş birisinin yanında sırf adı mühendis diye mühendislik diploması olana bu işi sen daha iyi bilirsin diyemeyiz. Ama şunu da unutmamak lazım ki mühendislerin aldığı onca matematik dersleri, mesleki teorik dersleri onlara çok büyük bir avantaj sağlar.

MV-Neyse benim aklım ermedi. Kaç kardeşsiniz?

…..

Bu muhabbet böyle uzar gider. Ama sanırım derdimizi bir nebze olsun anlatabildik. İkinci yazıda sektörün durumuna göz atacağız.

Sağlıcakla Kalın…

Opera vs IE8

Haziran 6th, 2009 yapan Yavuz Selim Bilgin No comments »

Ilk makalemle sizlere merhaba demek istiyorum.

Bu yazida artik hayatimizin vazgeçilmezi olan internet dünyasina açilan pencerelerimiz olan internet tarayicilarinin arasindaki ezeli çekismedeki son duruma bakacagiz.

Iki oyuncumuz var. Birincisi isletim sistemi pazarinin tartismasiz sahibi olan Windows’un içinde gelen ve birçok internet kullanicisinin internetle özdeslestirdigi (ismi çok iyi seçilmis) Internet Explorer’in son ve belki bugüne kadar en iddiali sürümü olan IE8, Ikincisi ise kalburüstü internet kullanicilarinin degismez tercihi, ie’nin çogu özellik söz konusu oldugunda 3 yil geriden takip ettigi neredeyse tüm testlerde en az güvenlik açigi bulundurdugu tescillenen ama ne yazik ki ülkemizde ve dünyada layik oldugu kullanim oranlarina ulasamayan, gönüllerimizin prensi Opera’nin güncel sürümü Opera 9.64.

Yigidi öldür hakkini yeme demisler. Microsoft IE8 ile yillardir maglubiyete oynadigi browser pazarinda çok akillica bir hamle yapti. Altyapi degisiklikleriyle, web slices olayiyla, hizlandiricilariyla bu sefer olmus diyebiliriz. Fakat sekmeler açilirken net bir sekilde fark edilen hiz problemine bir çözüm bulmalari lazim. Farenin orta tusuyla bir linke tikladiginizda neredeyse 2 saniye gecikme ile açiliyor sekme. Operada ise tiklamamizla açilis arasinda bizim fark edebilecegimiz bir süre geçmiyor. Tamam, belki üstün güvenlik önlemleri dolayisiyla oluyor olabilir bu durum fakat kullanirken hele de hizli bir tarayiciya alismis bir kullanici için iskenceye dönüsüyor.

Bu arada her iki programin da kaynak tüketimlerine göz atalim. 6 popüler web sitesini Operada ve Internet Explorer’da açtik. Görev yöneticisine baktigimiz zaman Opera. exe 123 MB bellek kullanirken, 5 farkli iexplore. exe dosyasinin toplamda 163 MB bellek tükettigini görüyoruz. 1 pencerede 6 sekme açikken 5 ayri iexplore. exe çalismasina ben bir anlam veremedim.

Opera bünyesinde basarili bir mail istemcisi ve özet akisi görüntüleyicisi bulunduruyor. Internet Explorer basarili bir özet akisi görüntüleyicisi sunarken mail istemcisi konusunda bir sey veremiyor. Microsoft Live ailesi varken IE’nin böyle bir ise kalkismasini beklemiyorduk zaten.

Diger rakibi Firefox gibi Opera’nin da arkasinda çogu 3. Parti olmak üzere genis bir bilesen(eklenti) destegi varken, IE8 bu açigini Hizlandiricilar ile kismen kapatmis olsa da hala bu konuda rakiplerini yakalayabilmis degil. Çünkü Opera yillardir IE’nin hizlandirici dedigi ve tüm tanitimlarinda ballandirila ballandirila anlatilan özelligini bünyesinde barindiriyor. Ama sunu da göz ardi etmemek gerekir ki Web Slices olayi ile IE8 web tarayici dünyasinda bir ilki gerçeklestirdi. (yaniliyor olabilirim)

Gelelim indirme yöneticileri konusuna. Opera Aktarimlar basligi altinda yüklemeleriniz için ayrica bir yazilim kullanmanizi gerektirmeyecek kadar basarili bir arabirim sunuyor. Ayrica Opera bu arabirim üzerinden vasat düzeyde bir torrent istemcisi de sunuyor. IE8 cephesinde ise IE7ye hatta IE6ya nazaran pek bir gelisme yok gibi. Halen aktarimlariniz kesildiginde basa dönmemek için ayrica bir indirme yöneticisi kullanmaniz gerekiyor.

Son olarak Opera’da bulunan fakat IE8de bulunmayan iki özellikten bahsedelim. Bunlardan ilki bana göre kullaniciya çok büyük bir kolaylik saglayan fare kisa yollari (mouse gestures). Örnek vermek gerekirse resimde de kismen görüldügü gibi Opera’da farenin sag tusuna basip çesitli hareketler yaparak tarayicinin birçok islemini yapmak mümkün (ileri, geri, yeni sekme, sekme kapat vs). Bunlar bana göre bir tarayicinin en önemli, olmazsa olmaz özelliklerinden. Alistiktan sonra baska tarayici kullanirsaniz sürekli sag tus menüsünü açip sinir oluyorsunuz. Bu özelligi Firefox da eklenti olarak sunuyor. Ikincisi geri alma islemi. Bilgisayar kullanicilarinin en siki dostu olan Ctrl+z tus birlesimi(burada ben kombinasyon kelimesini kullanmistim fakat Word uyardi yabanci kelimeler yerine Türkçesini tercih edebilirsin dedi. Sasirdim dogrusu) ile Opera’da sekme açip kapatmak dahil tüm islemlerinizi geri alabiliyorsunuz.

Bir önceki paragrafa “son olarak” diye basladigimin farkindayim. Fakat Opera’nin bu özelliklerinden bahsettikten sonra IE’nin de “InPrivate Göz atma” özelligine deginmeden geçersem haksizlik etmis olacagimi düsündüm. IE8′de bir InPrivate göz atma penceresi açarak dilediginiz sayfalarda dolasabilir çarpi tusuna basip kapattiginizda ise arkanizda hiçbir iz birakmazsiniz. (denemedim, bu konuda emin degilim J)

Sonuç olarak sunu söyleyebilirim. Opera bence hala tahtinda oturuyor. Fakat IE8 ile birlikte IE artik eskisi gibi “vasatin altinda” bir tarayici olmaktan kurtulmus. Ama yine de Windows ile beraber gelmedigi takdirde pek kullanici bulabileceklerini sanmiyorum.

En kisa zamanda yeni bir yazida bulusmak dilegiyle…

Yavuz Selim BILGIN