JSON ve BSON

Merhaba Arkadaşlar, JsonToBsonSanıyorum her .Net programcısının takım çantasında yer alan paketlerden birisi de Newtonsoft'un JSON serileştirme kütüphanesidir. JSON(JavaScriptObjectNotation) formatı, XML(eXtensibleMarkupLanguage) şemasından sonra hafif ve az yer kaplama özellikleri nedeniyle çokça tercih edilen standartlardan birisi haline gelmiştir. Diğer yandan JSON içeriklerin Binary formatta serileştirilmiş versiyonu olarak adlandırılan BSON formatı da sıklıkla kullanılmaktadır. BSON, NoSQL camiasının liderlerinden MongoDB ile popülerlik kazanmış bir veri formatı. JSON içeriğinin binary formatta sunulması oldukça hızlı gerçekleşebilecek bir işlem. Bu nedenle NoSQL tabanlı sistemlerde yatay ölçeklenen veri kümeleri arasındaki iletişimde tercih edilebiliyor. Ağ üzerinde dolaşan bu küçültülmüş paketler içerisinde JSON tipinde veri bulunuyor. Zaten tasarım amaçlarından birisi de bu. Peki .Net tarafında kullanılan nesne örneklerini BSON formatına nasıl dönüştürebiliriz? Bunun bilinen pek çok yolu var tabii ki ancak uygulamanızda Newtonsoft ve JSON içerikleri ile çalışıyorsanız işi kolaylaştıracak tiplerde bu paketle birlikte geliyor. Newtonsoft.Json paketi, bir JSON içeriğinin binary olarak yazılması ve okunması için iki temel tip sunmakta. Bu tipleri kullanarak BSON dönüşüm işlemleri kolayca gerçekleştirilebilir. Basit bir örnekle konuyu özetleyelim. [Dah fazla]

Big Data (Büyük Veri)

Günümüzde bilgi toplumunun unsurlarını hayatın her alanında görmek mümkündür. Artık herkesin cebinde bir akıllı telefon, herkesin evinde bir bilgisayar ve tüm şirketlerin arka ofislerinde bilgi teknolojileri yönetimini yapan birimler bulunmaktadır.Ancak bilginin kendisi o kadar görünür değildir.Bununla birlikte bilgisayarların insan hayatına girmesinden ancak yarım asır sonra bilgi miktari anlamlı ve özel bir nitelik kazanacak şekilde toplanmaya başlamıştır.Günümüzde sadece bilgi miktari artmamış aynı zamanda bilgiye erişim hızı da artmıştır. [Dah fazla]

WebAssembly: Webin Geleceği

Apple, Google, Microsoft ve Mozilla ortak bir neden için bir araya geldiler. Birbirine rakip olan bu firmalar WebAssembly adındaki yeni bir programlama standardı konusunda anlaştılar. Konunun içeriğine bakmadan dahi böylesi bir işbirliğinden yola çıkarak da şunu çok rahat söyleyebiliriz; WebAssembly web’de büyük değişikliklere yol açacak ve WebAssembly’den sonra bambaşka bir web dünyası olacak! [Dah fazla]

Sıralama Algoritmaları (Bubble, Quick, Insertion, Selection, Shell, Merge, Heap)

Sıralama algoritması, bilgisayar bilimlerinde ya da matematikte kullanılan, verilen bir listenin elemanlarını belirli bir sıraya sokan algoritmadır. En çok kullanılan sıralama türleri, sayı büyüklüğüne göre sıralama ve alfabetik sıralamadır. Sıralama işleminin verimli yapılması, arama ve birleştirme algoritmaları gibi çalışması için sıralanmış dizilere gereksinim duyan algoritmaların başarımının yüksek olması için önemlidir. Sıralama algoritmaları bilgisayarlarda tutulan verilerin düzenlenmesini ve insan kullanıcı tarafından daha rahat algılanmasını da sağlar. Özellikle bu algoritmaların dil bağımsız olan Pseudo Code içeriklerinden yararlanarak her hangi bir dile uygulanmaya çalışılması üzerine epeyce kafa yormuşuzdur. Bu algoritmaları yazmak için çokça uğraşmışızdır. Gelelim bu yazımızın konusuna. Geçtiğimiz günlerde yine boş anlarıma denk gelen bir zaman diliminde, sıralama algoritmaları arasındaki hız farklarını incelemeye çalışmaktaydım. İş bir süre sonra Console uygulamasının Main metodu içerisine hapsolmanın ötesine geçti. Dilerseniz hiç vakit kaybetmeden kodlarımızı değerlendirmeye başlayalım. Amacımız bir performans test uygulaması geliştirmek olacak. Ele almayı düşündüğüm bir kaç sıralama algoritması söz konusu idi. Kimisinin yazımı oldukça kolay, kimisin ise inanılmaz karmaşıktı. [Dah fazla]

Unutulmayan Yazılım Hataları ve Sonuçları

Bir yazılım geliştirirken dikkat edilecek en önemli husus, yazılımın en az derecede hata içermesi ve kendinden beklenenleri en üst seviyede karşılamasıdır. O yüzden dolayıdır ki yazılım test eylemleri, yazılım geliştirme sürecinde en erken safhalarında başlar.

Testçiler, muhtemel hataları yazılım geliştirme sürecinin en erken safhalarından itibaren bulmayı ve bulunan hataların düzeltilmesini amaçlarlar. Bilgisayar sistemleri hatalar barındırır. Bu hatalar insan (geliştirici, analist vb.) veya donanım kaynaklı olabilir. Oluşan hataların maddi ve prestij kayıplarına sebep olmaması için yazılım test sürecinin, proje döngüsüne katılması sağlanmıştır. Bu sayede kayıpların en aza indirilmesi amaçlanmaktadır. Burada unutulmaması gereken şey mükemmel bir yazılım olmadığı ve bir yazılımın [Dah fazla]