2008 December

Malzeme Rengi (Material Color)

Yazan : Şadi Evren ŞEKER Bilgisayar grafiklerinde bir malzemenin renginin belirlenmesi bu malzeme üzerine düşen ışıktan ne kadar krımızı yeşil ve mavi (red, green, blue) kodlarının yansıdığıdır. Örneğin bir kırmızı küp üzerine beyaz ışık düştüğünü ve küpün bütün yeşil ve mavi renkleri emdiğini düşünelim. Bu durumda küp tam kırmızı renkte görüntülenecektir.  Benzer şekilde kırmızı küpü [...]

Şadi Evren ŞEKER tarafından, 28/12/2008 tarihinde yazıldı. | Bilgisayar Grafiği (Computer Graphics) | A yorum var

Işık Kaynakları (Light Sources)

Yazan : Şadi Evren ŞEKER Bilgisayar grafiklerinde şekillerin aydınlatılaması için kullanılan çeşitli ışık kaynakları bulunur. Temel olarak 3 çeşit ışık kaynağından bahsedilebilir. Bunlar çevresel (ambient), dağılımsal (diffuse), akis (specular) ışık kaynaklarıdır. Kısaca çevresel ışık kaynağında ışığın yönünün belirlenmesi imkansızdır. Işık her yönden eşit geliyormuş gibi algılanır. Örneğin bir odadaki arkaplan ışığı vurulması böyle bir aydınlatmadır. [...]

Kaba Kuvvet Algloritması (Brute Force Attack)

Yazan : Şadi Evren ŞEKER Veri güvenliği konusundaki en basit saldırı yöntemidir. Bir işin çok zeki olmayan ama güce dayalı çözümü misali her zaman en uzun çözüm yoludur ve her zaman bir çözme ümidi vardır Basitçe bir şifreli metnin alabileceği bütün anahtar ihtimalleri veya bütün açık metin ihtimallerinin denenmesine dayanır. Örneğin en basit şifreleme yöntemlerinden [...]

SDK

Yazan : Şadi Evren ŞEKER Yazılım ortamlarında, yazılım geliştirmek için kullanılan araçların bir araya getirildiği paketlere verilen isimdir. Software development kit (yazılım geliştirme araçları) kelimelerinin baş harflerinden oluşan bu kısaltma en az anlamda API (application programming interface , uygulama programlama arayüzü) içeren ve daha gelişmiş paketlerde IDE (integrated development environment) , yazılım dökümantasyonu, örnek kaynak [...]

Paralel Diziler (Parallel Arrays)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde kullanılan bir veri yapısı (data structure) tipidir. Kayıtları (records) bir dizi halinde tutmak için kullanılır. Kabaca aynı sayıda elemanı olan birden fazla dizinin (array) aynı indisinde duran elemanları aynıysa bu kayıtların farklı bilgilerini tutmaya yarar. Veri üzerinde bir oluşum (composition) tanımlanmadığı ilkel programlama dillerinde veya hız gerektiren durumlarda [...]

Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | Programlama Dilleri, veri yapıları | 5 yorum var

RC2

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde, veri güvenliğinde kullanılan şifreleme algoritmalarından birisidir. Blok şifrelemenin (Block cipher) bir türü olan RC2 daha sonra çıkan RC4, RC5 ve RC6 gibi şifrelemelerin ilkel versiyonudur. Basitçe 64 bitlik(ikil) bir feistel ağını (feistel network) kullanarak 18 geçişte (round) değişken uzunluklu bir anahtar ile şifreleme yapmaktadır. Bu geçişlerin 16 tanesi [...]

Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | Veri Güvenliği(Cryptography) | A yorum var

Dizgi Karşılaştırma (String Comparison)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde metin ve yazı gibi bilgileri tutmak için kullanılan dizgileri (Strings) tutan değişkenler karşılaştırılırken eşitlik kontrolü yapılması mümkün değildir. Bunun yerine dizginin tamamının eşit olup olmadığını kontrol etmek ve ancak bütün elemanları aynıysa eşit oldukları hükmüne varmak gerekir. Bu durum aşağıdaki şekilde açıkça görülmektedir: Yukarıdaki şekilde hafızada durmakta olan [...]

Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | C/C++, JAVA, Programlama Dilleri, veri yapıları | A yorum var

UML (Unified Modeling Language, Ortak Modelleme Dili)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinin, yazılım mühendisliği bölümünde yazılım modellemesi sırasında kullanılan gösterim şekilleri standartlaştırılmış ve ortak bir modelleme şekli oluşturulmuştur.  Bu modelleme şekli UML yaygınlaşmadan önce her yazılım modelleme sisteminde farklı şekillerde yapılmaktaydı ve her yazılım firması kendi standartlarını belirleme çalışmasındaydı. UML ile birlikte bu rekabet ortadan kalkmış ve ortak bir standart [...]

Şadi Evren ŞEKER tarafından, 25/12/2008 tarihinde yazıldı. | Yazılım Mühendisliği (Software Engineering) | 2 yorum var

CASE Araçları (Case tools)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinini yazılım mühendisliği alanında kullanılan araçların genel ismidir. Computer Aided Software Engineering kelimelerinin baş harflerinden oluşan bu araçların amacı yazılım geliştirme süreçlerinin koltrol edilebilmesi , ölçeklenebilmesi ve kolay yönetilebilmesidir. CASE araçlarını aşağıdaki kriterlere göre birkaç bölümde incelemek mümkündür: Kod üreten yazılımlar (Source code generation tools) UML (Unified modelling langue) [...]

Euler’in Çarpanlara Ayırma Metodu (Euler’s Factorization Method)

Yazan : Şadi Evren ŞEKER Euler’in çarpanlara ayırma metodunda (Euler Factorisation) çarpanlarına ayrılacak olan bir sayı iki kare toplamı şeklinde yazılmaya çalışılır. Şayet iki farklı iki karet toplamında yazabilirsek iki kare farkı şeklinde de yazabiliriz. Yani örneğin sayımız N olsun bu sayının çarpanlarını bulmak için : N = a2 + b2 = c2 + d2 [...]

Şadi Evren ŞEKER tarafından, 24/12/2008 tarihinde yazıldı. | Bilgisayar Matematiği | A yorum var

Öklit Algoritması (Euclid Algorithm)

Yazan  : Şadi Evren ŞEKER Matematikte çok sık kullanılan OBEB (ortak bölenlerin en büyüğü, greatest common divisor, gcd) hesaplamak için öklit’in geliştirdiği bir metottur. Uzatılmış öklit (extended euclid) algoritmasının temelini oluşturur. Buna göre iki sayının ortak bölenlerinin en büyüğü iki sayı birbirini tam olarak bölene kadar iki sayının birbirinden çıkarılması ile elde edilebilir. Örneğin sayılarımı [...]

Fermat’ın Çarpanlara Ayırma Yöntemi (Fermat’s Factorization Method)

Yazan : Şadi Evren ŞEKER Fermat’ın çarpanlara ayırmak için (fermat factorisation) kullandığı yöntem iki kare farkı elde etmeye dayanır. Basitçe bir sayı şayet iki kare farkı şeklinde yazılabilirse N = a2 − b2 Bu durumda N sayısını veren çarpanlar (a + b)(a − b) şeklinde bulunmuş olur. Bu teoriyi ilerletirsek N = [(c + d) [...]

Phong Aydınlatması (Phong Reflection)

Yazan : Şadi Evren ŞEKER Bilgisayar grafiklerinde kullanılan ve bir şeklin aydılantılması sonucunda ekranda bu şekil ile ilgil oluşan her imgeciğin (pixel) nasıl görüldüğünü hesaplamaya yarayan yöntemin ismidir. Basitçe yansıma, yayılma ve parlama sonuçlarının interpolasyonudur. Yukarıdaki şekilde bu 3 ekti ayrı ayrı resimlerde gösterilmişt ve son resimde (en sağdaki) bu üç ektinin interpolasyonu olan son [...]

Şadi Evren ŞEKER tarafından, 23/12/2008 tarihinde yazıldı. | Uncategorized | A yorum var

Lambert kosinüs teoremi (Lambert’s cosine teorem)

Yazan : Şadi Evren ŞEKER Lamberte göre eksenle Φ açısı yapan bir düzlemin üzerinden yayılan enerji miktarı düzlemin normal vekörü ile yapılan Φ açısının kosinüsüne eşittir. Yukarıdaki şekilde bu durum gösterilmiştir. Bu duruma ilave olarak yayılım yönü bakan kişinin bakış açısı olarak da yorumlanabilir. Yani yüzeyin yaydığı enerjinin bakan kişiye doğru giden miktarı cos(Φ) ile [...]

Sezgi Üstü Algoritmalar (Üstsezgisel Algoritmalar, Meta Heuristic Algorithms)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde kullanılan algoritma tiplerinden birisi de sezgisel algoritmalardır. Temel olarak çalışmalarında kesinlik bulunmayan bu algoritmalar ya her zaman aynı performans ile çalışmaz ya da her zaman sonuç vermeyi garanti etmez ancak yine de problemi iyileştirme (optimisation) için kullanışlı algoritmalardır. Üstsezgisel algoritmalar ise bu sezgisel algoritmalar üzerinde çalışan bir karar [...]

En kötü durum analizi (Worst Case Analysis)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde bir algoritmanın incelenmesi sırasında sıkça kullanılan bu terim çalışmakta olan algoritmanın en kötü ihtimalle ne kadar başarılı olacağını incelemeye yarar. Bilindiği üzere bilgisayar bilimlerinde yargılamalar kesin ve net olmak zorundadır. Tahmini ve belirsiz karar verilmesi istenmeyen bir durumdur. Bir algoritmanın ne kadar başarılı olacağının belirlenmesi de bu kararların [...]

Sezgisel Algoritmalar (Buluşsal Algoritmalar, Heuristic Algorithms)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde sezgisel (heuristics) bir yaklaşımın problem çözümüne uygulandığı algoritmalardır. Uygulanan yöntemin doğruluğunun ispat edilmesi gerekmez, tek istenen karmaşık bir problemi daha basit hale getirmesi veya algoritamanın tatmin edici bir sonuç bulabilmesidir. Genel olarak bir problemin çözümü sırasında bilgisayar bilimlerinde iki amaçtan birisi güdülür. Ya problemin çözümü hızlı olmalı ve [...]

Bayes Ağları (Bayesian Network)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde veri modelleme ve durum geçişi ifade etmek için kullanılan yöntemlerden birisidir. Literatürde bayes network veya blief network (inanç ağı) olarak da geçen ağların özelliğ istatistiksel ağlar olmaları ve düğümler (nodes) arası geçiş yapan kolların (edges) istatistiksel kararlara göre seçilmesidir. Bayes ağları yönlü dönüşsüz ağlardır (directed acyclic network) ve [...]

Tuz ve Biber Gürültüsü (Salt and Pepper Noise)

Yazan : Şadi Evren ŞEKER Tuz ve biber benzetmesinden gelen bir gürültü üretme yöntemidir. Örneğin resim işlemede kullanılmaktadır. Bilindiği üzere tuz beyaz, biber ise siyah renktedir. Dolayısıyla resim üzerine rastgele olarak dağıtılan (Sanki bir tuzluktan dökülmüş gibi) beyaz ve siyar imgecikleri (pixel) ifade eder. Örneğin aşağıda verilen resmi ele alalım: Yukarıdaki bu resme tuz biber [...]

Şadi Evren ŞEKER tarafından, 20/12/2008 tarihinde yazıldı. | Resim İşleme (Image Processing) | 2 yorum var

Imgecik Azaltma (Pixel Reduction)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde resim işleme sırasında bir resmin imgecik miktarını azaltmayı hedefleyen algoritmadır. Amaç bir resmin boyutunu azaltmaktır. Örneğin resmin boyutları yarıya indirilecekse resimdeki her 4 imgecikten (pixel) bir tanesinin seçilmesi söz konusudur.  Temel olarak imgecik tekrarlama (Pixel Replication) işleminin tam tersidir. Resim küçülürken doğal olarak veri kaybı olmaktadır. Bunun anlamı [...]

Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | Resim İşleme (Image Processing) | A yorum var

İmgecik Tekrarlama (Pixel Replication)

Yazan : Şadi Evren ŞEKER Mevcut bir resmin boyutunun arttırılması için kullanılan tekniklerden birisidir.  Amaç resimde bulunan imgeciklerin (pixel) tekrarlanarak resmi büyültmektir. Örneğin aşağıda verilmiş olan matrisin siyah beyaz (monocolor) bir resim olduğunu (örneğin PBM formatında olsun) düşünelim: …… .XXX.. X…X. XXXXX. X…X. X…X. X…X. …… Bu resmin boyutu 6×8′dir. Bu boyutları iki misline çıkarmak [...]

Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | Resim İşleme (Image Processing) | A yorum var

Kabuk Sıralama (Shell Sort)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde kullanılan sıralama algoritmalarından birisi de kabuk sıralamadır (shell sort).  İsmi Türkçeye kabuk sıralaması olarak çevrilsede aslında Donald Shell isimli algoritmayı ilk bulan kişinin isminden gelmektedir. Algoritma performansı O(n2)’dir. Çalışması aşağıdaki örnek üzerinde anlatılmıştır: Sıralayacağımız sayılar: 5,7,2,9,6,1,3 olarak verilmiş olsun. Sıralama işlemi için öncelikle bir atlama miktarı belirlenir. Atlama [...]

İşlem Çatallanması (Process Forking)

Yazan : Şadi Evren ŞEKER Yazılan her program ilk başta tek bir işlem olarak çalışmaya başlar. Temel olarak derlendikten(compile) hemen sonra bağlanarak (link) hafızaya yüklenir (load). Yüklenen programı, işletim sistemi (operating system) bir işlem (process) olarak çalıştırır. Ancak bazı işlemler yüklendikten ve çalışmaya başladıktan sonra yeni işlemler üretebilirler. Aslında bu işlem üretme çalışan işlem üzerinde [...]

Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | C/C++, işletim sistemleri | 5 yorum var

Birliktelik, Münasebet ve Oluşum (Association, Aggregation and Composition)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde sistem modelleme ve mimari tasarım sırasında sıkça kullanılan ve genelde birbirine karıştırılması kolay olan konulardır. Özellikle nesne yönelimli programlama (object oriented programming) konusundaki gelişmelerle birlikte kullanılan UML modellerinde nesneler ve sınıflar arası ilişkilerde sıkça rastlanmaktadır. Temel olarak birliktelik ve münasebet ilişki türleri birer oluşum çeşidi olarak düşünülebilir. Yani [...]

String Tokenizer ( Dizgi Parçalayıcı )

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde sık kullanılan veri tiplerinden birisi de dizgilerdir (Strings). Bu veri tipinde herhangi bir yazı durabilir. Genellikle verinin bir parçasını elde etmek için dizgi içerisinden bir parça çıkarılması gerekir. Bu işlem için dizginin (string) parçalanması gerektiğinde yapılan işleme parçalama (Tokenize) ismi verilir. Örneğin çok sık kullanılan virgül ayırmalı veri [...]

Şadi Evren ŞEKER tarafından, tarihinde yazıldı. | C/C++, JAVA, veri yapıları | A yorum var