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

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

Rust Programlama Dili Hakkında Düşüncelerim

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

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

Merhaba, 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 Add-on 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....

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(Şu anda java.util.Collections.sort ve java.util.Arrays.sort’un altında bulunuyor). Timsort şu anda ise Android SDK’da, Sun JDK’da ve OpenSDK’da varsayılan sıralama algoritması olarak kullanılıyor....

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

Herkese merhabalar, 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....

HTML5 Contenteditable Attribute'ü İle 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!...

HTML Imports (HTML İçe Aktarım) - Kısım 2

Yazının birinci kısmına buradaki linkten ulaşabilirsiniz. Web Componentlerinin iletimi HTML Importlar, tekrar kullanılabilir içerikleri yükleyebilmek için tasarlanmıştır. Özellikle Web Componentlerinin dağıtımı için en ideal yoldur. HTML <template> etiketleri ve Shadow DOM ile birlikte Custom elementler. Bütün bu teknolojiler bir araya geldiğinde HTML Import artık Web Componentlerimiz için #include gibi bir hal alıyor. Template’leri Include etmek HTML Template ile HTML Import birbirleriyle bir uyum içindedir. <template> etiketi bizim import edilecek uygulamamızda HTML için gayet güzel bir iskelet görevi görüyor....

HTML Imports (HTML İçe Aktarım) - Kısım 1

Neden Import? Web’de farklı kaynakta dosyaları nasıl yüklediğinizi düşünün. Javascript için <script src=""> tagini kullanıyoruz. CSS için ise <link rel="stylesheet" href=""> tagini kullanarak HTML sayfamıza kaynakları ekliyoruz. Bu kaynak eklemeyi resim video ve ses dosyalarını da eklemek olarak çeşitlendirebiliriz. Peki makalemizde ne anlatmaya çalışıyoruz? Bu makalede kaynak dosyası olarak düşündüğümüz şey HTML ve biz bir HTML dosyasını başka bir HTML dosyasında çağırmayı öğreniyor olacağız. Peki biz daha önce nasıl HTML’i başka bir HTML dosyasında çağırıyorduk, hemen onlara bakalım:...