bilgisayar etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
bilgisayar etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

20 Temmuz 2012 Cuma

Recursive - NonRecursive Functions


Merhaba,

     Bugun biraz teknik konulardan konuşuyor olucaz.Belki nette ufak tefek yazılımsal çözümler arayan arkadaşlara yardımcı olabilirim.En küçük örnek olarak bugün bir recursive fonksiyonun yani kendi kendini tekrar çağıran fonksiyonun verimliliği ile ilgili konuşalım.Bunun için en güzel örnek de Fibonacci dizisi olucaktır.Fibonacci dizisini duymamış olanlar için kısaca bahsedersek bir önceki sayı ve sıradaki sayının toplanmasıyla bir sonraki sayının oluşturulduğu sayı dizisidir yani 0 1 1 2 3 5 8 13 ... diye devam etmektedir.
Şimdi bazı fibonacci sayılarını bulmak için ufak bir algoritma yazalım hem recursive hemde non-recursive ve bunları karşılaştıralım.

Recursive Fibonacci algoritması Java implementasyonu aşağıdaki gibidir.

public static int Recursive_fibonacci(int n){
    if(n <= 1)
                return n;
     else
          return Recursive_fibonacci(n-1) + Recursive_fibonacci(n-2);
   }
Nonrecursive Fibonacci algoritmasın Java implementasyonu da aşağıdaki gibidir.
public static int Non_Recursive_fibo(int k){
   int sum;
   int result=1;
   int prev=0;
   for(int i =1 ; i < k ; i++){
                     sum = result + prev;
                     prev = result;
                     result = sum;
  }
    Aşağıdaki tabloda da çalışma zamanlarıyla ilgili test süreleri bulunuyor.

Recursive Fibo
Non-Recursive Fibo
n = 10
12709 nanosec
4594 nanosec
n = 20
417462 nanosec
4594 nanosec
n = 30
11821715 nanosec
5083 nanosec

     Recursive fonksiyon küçük numaralar için non-recursive’e göre daha kısa sürede sonuç verirken büyük numaralar için ise çalışma zamanı daha hızlı büyüyerek uzun sürelerde sonuç vermeye başladı.N artarken recursive fonksiyonun çalışma zamanı diğerine göre daha hızlı büyüdüğü için büyük numaralarda verimsiz oldu.
     Recursive fonksiyon bize kolaylıklar sağlayabileceği gibi bazı durumlarda da verimsiz olabiliyor koşulları iyi değerlendirirseniz doğru algoritmayı seçebilirsiniz.


25 Mart 2012 Pazar

Sabreden Derviş

Uzun bir aradan sonra tekrar merhaba,
   Biliyorum çok unutturdum kendimi.O kadar hevesle başladığım yazma işine birden çok uzun süre ara verdim.Elimde olmayan sebepleri hesaba katamamıştım.Bu kadar uzun ara vermeyi hiç düşünmemiştim.Artık öğrencilik hayatımın yoğunluğundan fırsat bulamamış olmam mı deseniz yoksa Alperen’in yazma konusundaki tembelliği mi deseniz siz karar verin. J
   Üniversiteyi kazandığımdan beri aileden uzaklaşmak, ayrı eve çıkmak vb. şeylerin getirdiği sorumluluklarla hayatımın belirli dönemleri çok daha yoğun geçmeye başladı.Bu yoğunluk içinde olaylara sabırla yaklaşmak gereği de giderek önem kazandı.İnsanın hayatının her anında sabırlı olması gerektiği gerçeği önümde dururken ben son zamanlarda çok sabırsız olduğumu düşünmeye başladım.
   Aslında hayatın her anında vardır sabır.Trafikte kırmızı ışığı beklerken,arkadaşından telefon beklerken,sağlığına kavuşmayı dilerken,askerden dönecek oğlun yolu gözlenirken,Beşiktaş’ın golünü beklerken ve daha birçok yerde…
   Okulda, evde, yolda kendimle konuşmaya fırsat bulduğum her an da sabırsızlık yaşadığımı fark ettiğimde kendime biraz kızdım.Geçenlerde vapurda çayımı yudumlarken bile sabırsızca davranıp sıcak çayı bir yudumda içerken yakaladım kendimi.Neydi bu bendeki acele anlam verememiştim.Telefon konuşmalarımın iki dakika uzamasına sabredemiyordum,karşıdan karşıya geçerken kırmızı ışığa sabredemiyordum.Ama bunun böyle gitmeyeceği açık ve netti.Artık bir dur demem gerekiyordu. Oysaki ben sabırlı olmayı küçüklüğümden itibaren öğrenmeye başlamıştım.Öğrenmeye başladım diyorum çünkü anlık bir şey değil öğrenilip bitmiyor.İnsan her yaşında sabırlı olmayı öğrenmeye devam ediyor.9-10 yaşlarındaydım,2 yaşındaki kardeşim hastaneye yatana kadar sabretme eylemiyle tanışmamıştım.Daha küçükken mutlaka karşıma çıkmıştır sabretmem gereken bir durum ama bazı şeyleri fark etmeye başladığım zaman en çok bunun aklıma kazındığını hatırladım.Bu olay benim için ilkti.Kardeşimin hastanede geçirdiği aylarda ona kavuşmayı sabırla beklemiştim.İnsanı en çok etkileyebilecek olaylar yakınlarıyla,sevdikleriyle yaşadıklarıdır.Bende o günlerde sabretmeyi öğrendim ve bu yüzden bu olaya ilk diyorum.
    Kardeşim sağlığına, ben de kardeşime kavuştuğunda sabredip muradımıza ermiştik ikimizde.Bundan sonra önümüze çıkacak her türlü zorlukta sabrımızı koruyup yılmayacaktık.Sırada benim lise sınavım,kardeşimin okula başlaması gibi hayatın bir çok önemli anı vardı ve hepsinde sabırlı olmanın ne kadar önemli olduğunu gördüm.
   Şimdi okuduğum bölümde de başarılı olmak için her zaman gerekli olan çalışkanlık,azim,hırs gibi şeylerin yanında sabrın yerinin ne kadar büyük olduğunu öğreniyorum.Bilgisayarla uğraşmak gerçekten büyük sabır gerektiren bir iş.Özellikle yazılım alanı sürekli gelişen bir alan olduğu için ayak uydurmak için koşmaktan daha fazlasını yapmak gerekiyor.
   Geçenlerde telefonumun yazılımıyla uğraşırken karşılaştığım sorunlarda gördüm ki sabırsızlığımı tamamen yenmişim. Bilgisayar, telefon gibi teknolojik aletlerle uğraşırken takıldıklarında bir an önce düzelmeleri için gereksiz bir çok şeye başvuran ben, sabrın önemini kavrayınca ne kadar doğru hamleler yapılabileceğini bir kez daha gördüm.Sabırsızlıkla içimde bir şeylerin beni yemesine engel olunca her şeyin daha doğru ve akıcı gittiğine,istenilen sonuca vardığına şahit oldum.
   Yaşadığım bazı tecrübeleri, farkına vardığım bazı şeyleri paylaşmak istedim sizlerle.Beni sabırla dinlediğiniz için teşekkürü bir borç bilirim.Yakında tekrar görüşmek üzere…

27 Şubat 2012 Pazartesi

Çok sayıda sekmeyle çalışan Chrome kullanıcılarına ipuçları..


   Bir yerden başlamak lazım artık yazmaya diyerek giriştiğim bu işte en çok ilgili olduğum alanlardan biriyle karşınızdayım.Bugün teknoloji üzerine bazı ufak tiyolar vermek istedim.Konumuz web tarayıcısı Google Chrome.
   Web tarayıcınızda 10'larca sekme açtığınızda bu sekmeler arasında yolunuzu bulmanız oldukça zor bir hal alabiliyor.Bunu en çok yaşayanlardan biriyim ve sizde benim gibi bilgisayarın başına geçtiğinde sekmelerin sayısının artmasına engel olamayanlardansanız bu yazı tam size göre J Ben Chrome web tarayıcısını kullandığım için onun üzerine konuşmaya çalışıcam.
 
1.Sekmeleri sabitleyin: Çok fazla sayıda sekmeniz açık olduğunda sekmeler giderek sıkışıyor ve bu sıkışmayla birlikte kapatma butonu ve sekmeler giderek birbirine yaklaşıyor.Yanlışlıkla sizin için önemli olan bir sekmeyi kapatma ihtimaliniz artıyor bunun önüne geçebilmek için korumak istediğiniz sekmeye sağ tıklayıp “Sekmeyi İğnele” seçeneğini kullanabilirsiniz.


2.Tüm sekmeleri kaydedin: Bilgisayarınızın başından bir süre kalkacaksınız ancak açık olan sekmeleri kapatmak istemiyorsunuz,herhangi bir etkene karşın sekmelerinizi koruma altına almak için bir sekmeye sağ tıklayarak "Tüm sekmelere yer işareti koy" seçeneğine tıklayın. Böylelikle açık olan tüm sekmelerinizi yer imlerine ekleyebilir, daha sonra tekrar açabilirsiniz.


3.Chrome ‘u daha etkin kullanabilmek için işte size birkaç kısayol:
Sekmeler arasında dolaşmayı kolaylaştıran birkaç kısayol tuşu bulunuyor. Windows'ta CTRL+TAB ile sağ taraftaki sekmeye, CTRL+SHIFT+TAB ile sol taraftaki sekmeye geçiş yapabilirsiniz.Kapattığınız bir sekmeyi tekrar açmak için geçmişinizi açmanıza gerek yok. CTRL+SHIFT+T tuşlarına basmanız yeterli olacaktır.


Ve benim en çok takdir ettiğim özelliklerden bir tanesi…


Açık olan sekmelerinizi eşitleyin: Chrome'daki sekmelerinizi Google hesabınızla eşitleyebilirsiniz. Bu özelliği etkinleştirmek için chrome://flags/ adresini Chrome'da açın ve açılan sayfada "Açık sekmeleri senkronize etmeyi etkinleştir" seçeneğini bularak etkinleştirin.Bu sayede farklı bir bilgisayarda aynı sekmeleri açabilirsiniz.Tabi yine Chrome da google hesabınızla oturum açmanız gerekiyor.Aynı özellik, Android 4.0 için yayınlanan Chrome web tarayıcısında da bulunuyor.

Ayrıca bazı eklentiler de bu konuda size yardımcı olabilir.
Tab Wrangler, belirli bir süre açık kalan ve kullanılmayan sekmeleri otomatik olarak kapatıyor. Kapatılan sekmeleri istediğiniz zaman tekrar açabiliyorsunuz. Belirli sayfaları kilitleyerek kapanmasına engel olmanız mümkün.

Sekmelerinizi mobil cihazınıza gönderin
Bazen bilgisayarınızın başından kalkarak işinize cep telefonunuzda veya tabletinizde devam etmeniz gerekebilir. Açık sekmelerinizi mobil cihazınıza göndermeniz oldukça kolay.
Açık sekmelerinizi Android veya 
iPhone'a göndermek için Chrome to Phone veya Site to Phone eklentilerinden birine ihtiyacınız var. Chrome to Phone, açık sekmeleriniz Android cihazınıza gönderirken Site to Phone, iPhone, BlackBerry, Windows Phone 7 ve webOS gibi üçüncü parti cihazları ele alıyor.


İşte bu da Chrome to Phone için bir örnek video:


Benden şimdilik bu kadar umarım yardımcı olabildim..

23 Şubat 2012 Perşembe

Blog’uma başlarken…


Merhaba,
  Ben Marmara Üniversitesi Bilgisayar Mühendisliği öğrencisi Alperen İNAL olarak kendimi tanıtma faslını uzun tutmak istemiyorum.Zaten günler geçtikçe beni tanıma fırsatı bulacağınızı düşünerek aklımdakileri yazıya dökmeye başlıyorum. Uzuuun zamandır böyle bir işe girişmek istiyordum aklımda olmasına rağmen bir türlü başlayamamıştım ama sonunda başardım.

   Evet aklımdakileri yazıya dökmekten bahsediyorum.Gerçekçi olmak gerekirse ne ilkokul yıllarımda nede lise de bir günlük tutmuşluğum yada anı yazmışlığım yoktur bir kenara.Hani ilkokulda günlük tutma alışkanlığı kazandırmaya çalışılır ya çocuklara ben hep uzak durmuştum bu tavsiyelere:) Şimdilerde ise keşke o zamandan gelen böyle bir alışkanlığım olsaymış diyorum ve başlıyorum yazmaya…

   Zaman buldukça, elimden geldiğince yaşadıklarımı anlatmaya, karşılaştığım şeyleri ve tecrübelerimi paylaşmaya çalışacağım.Bu süre zarfında sürçi-lisan edersem affınıza sığınıyorum.Şimdilik giriş yazımı noktalamak istiyorum en yakın zamanda tekrar görüşmek üzere..:)