Rust’ta Borrowing ve Referans Kavramları

Merhaba arkadaşlar, bir önceki yazımızda Rust’ta bulunan ownership kavramından bahsetmiştik. O yazıya buradan ulaşabilirsiniz. Bu konuyu anlayabilmek için bir önceki ownership kavramını da anlamış olmak gerekiyor. Bu nedenle bu yazıya başlamadan önce, eğer ownership kavramını bilmiyorsanız, diğer yazımı okumanızı tavsiye ederim. Ownership öğrendikten sonra yine aynı derecede önemli olan ikinci kavrama geçiş yapıyoruz, o da borrowing (ödünç almak) kavramı. Diğer yazımızda Rust’ın diğer dillere göre çok farklı bir kaynak yönetim mekanizması olduğundan bahsetmiş ve bir kısmını açıklamıştık. O yüzden çok...

More

Rust’ta Ownership Kavramı

Merhaba arkadaşlar, geçen seferki yazımda Rust programlama dili ile hakkında bir ön bilgi verip, onda bulduğum olumlu ve olumsuz gözlemlerimi ve düşüncelerimi aktarmaya çalışmıştım. Yazıya buradan ulaşabilirsiniz. Aslında ownership(sahiplik), borrowing(borçlanma) ve lifetime(kullanım süresi, yaşam) konularını o yazının içinde açıklamak istemiştim fakat daha sonra yazının çok uzayacağını ve ana konudan şaşacağını düşündüğüm için ayrı ayrı yazılar halinde yazmak istedim. Rust programlama dilini diğer dillerden ayıran özelliklerin başında bu üçü geliyor bence. Başka bir programlama dilini biliyor ve Rust’a geçiş yapıyorsanız, diğer...

More

Rust Programlama Dili Hakkında Düşüncelerim

rust-dili

Merhabalar, yine blog yazılarıma uzun bir ara verdikten sonra kaldığım yerden devam ediyorum. Bu yazıda uzun süredir merakla takip ettiğim bir programlama dilinden bahsedeceğim. Bu programlama dilinin adı Rust. Yeni bir dil olmasına rağmen diğer dillerden farklı özellikleriyle sıyrılmasından dolayı, ben de Rust hakkında bir yazı yazmak istedim. Fakat unutmamamız gereken bir kısım var; Rust dili hala geliştirilmekte olduğundan dolayı, yazdığım şeyler ileride geçerliliğini yitirebilir. Ben bu yazıyı elimden geldiğince güncel tutmaya çalışacağım. Siz de ilerideki sürümlerle ilgili bir uyuşmazlık,...

More

Firefox Eklentisi Nasıl Yazılır? – Kısım 1

firefoxAddonSDK

Firefox’a eklenti yazmakla ilgili elle tutulur bir Türkçe içerik bulmak çok zor. Genelde olanlar da çok eski oluyor ve yeni teknolojiler içermedikleri için de öğrenmenin hiç bir anlamı kalmıyor. Bu nedenle benim de uzun süredir aklımda bulunan bir konuyu sonunda ele almam gerektiğini düşündüm. Bu yazıda; Mozilla tarafından hazırlanan Firefox Addon SDK ile, Html, CSS ve Javascript kullanılarak nasıl bir eklenti geliştireceğimizi ve bu eklentiyi geliştirirken nasıl bir yol izlememiz gerektiğini anlatmaya çalışacağım. Yazıda değineceğimiz konu başlıkları: Firefox Add-on SDK...

More

Android, Java ve Python’da bulunan sıralama algoritmasındaki hata ve nasıl çözüleceği

Tim Peters adlı bir yazılımcı 2002 yılında Timsort adında bir melez sıralama algoritması geliştirdi. Bu algoritma merge sort(birleştirmeli sıralama) ve insertion sort(eklemeli sıralama) algoritmalarının akıllıca birleşiminden oluşan, gerçek hayat uygulamalarında çok güçlü bir algoritmaydı. Timsort öncelikle Python için tasarlandı fakat daha sonra Java Collections tasarımcısı olan Joshua Bloch tarafından Java’ya da port edildi(Şuanda java.util.Collections.sort ve java.util.Arrays.sort’un altında bulunuyor). Timsort şuanda ise Android SDK’da, Sun JDK’da ve OpenSDK’da varsayılan sıralama algoritması olarak kullanılıyor. Bu platformların popülerliği göze alacak olursak, Timsort algoritmasının...

More

Güle Güle Action Bar, Hoşgeldin Toolbar!

toolbar

Herkese merhaba,   Bu yazıda size Android SDK 21 ile gelen ve çok fazla esneklik katan bir Appcompat elemanını tanıyacağız. Hemen yazımıza başlayalım. Destek kütüphanesi(Support library) ve Appcompat nedir? Android’e, gelen api seviyeleriyle birlikte Android’e yeni özellikler dahil oluyor. Bu yeni gelen elemanlar veya özellikler önceki api seviyelerinde kullanılamaz oluyorlar. Google da bu sorunu ortadan kaldırmak adına, Support Library adını verdiği kütüphanesi ile, yeni gelen özellikleri eski api lerde kullanabilmemizi sağlıyor. Geriye dönük uygulama desteğini sunmak adına gerçekten çok iyi...

More

HTML5 Contenteditable Attribute’ü ile Değiştirilebilir CSS

contenteditable attribute’ü nedir? HTML5 ile birlikte gelen attribute’lerden biri olan contenteditable, hangi elemente eklenmişse o elementin içeriğinin değiştirilebilir olmasını sağlıyor. Tamamen client tarafında yapılan bu değişiklik, tarayıcının local storage’ında saklanıyor ve sayfayı yenilediğimiz zaman yaptığımız değişiklikler gidiyor. Contenteditable; true, false ve inherit olmak üzere 3 değer alabilir. Varsayılan özelliği ise inherit.   Bir örnek vermek gerekirse: <!DOCTYPE html> <html lang="tr"> <head> <meta charset="UTF-8"> <title>Contenteditable Örneği</title> </head> <body> <div class="title" contenteditable="true">Merhaba Dünya!</div> </body> </html> Şeklinde, title classına sahip divimize contenteditable=”true” ekleyerek...

More