11 Ağustos 2020 Salı

CSS Units: px (Pixel), em ve rem

Bir öğrencimden gelen güzel bir soruyu cevaplarken bir yandan başkalarının da ihtiyacı olabileceğini düşünerek kısa bir yazı yazmak istedim.

SORU: Web tasarımda ölçülendirme yaparken pixel ve yüzde kullanımı dışında em diye bir şey görüyorum. Nedir bu em? Bilmediğimiz başka şeyler de var mıdır?

em, web tasarımında kullanılan bir ölçü birimidir. Em birimi, belirli bir elementin yazı tipi büyüklüğünün, o elementin ata elementinin yazı tipi büyüklüğüne oranı olarak tanımlanır. Yani, em birimi, kullanılan yazı tipinin büyüklüğüne bağlı olarak otomatik olarak ölçeklendirilir.

Örneğin, bir elementin yazı tipi büyüklüğü 16 piksel ve bu elementin genişliği 4em olarak belirlenmişse, o elementin genişliği 64 piksel olur. Burada 1em, kullanılan yazı tipinin büyüklüğüne eşittir.

Em birimi, kullanılan yazı tipinin büyüklüğüne bağlı olarak otomatik olarak ölçeklendiği için, sayfanın yeniden boyutlandırılması veya farklı cihazlarda görüntülenmesi durumunda daha esnek ve duyarlı bir tasarım sunar. Bu nedenle, web tasarımcıları ve geliştiriciler em birimini sıklıkla kullanır.

Bunun dışında, rem (root em) birimi de mevcuttur. Rem birimi, kök elementin (genellikle <html>) yazı tipi büyüklüğüne bağlı olarak ölçeklendirilir. Rem birimi, em birimi gibi esnek ve duyarlı tasarımlar oluşturmak için kullanılır, ancak em birimi ata elemente bağlı olduğu için rem birimi tercih edilebilir.

Web tasarımda başka ölçü birimleri de bulunabilir, ancak pixel, yüzde, em ve rem en yaygın kullanılanlardır. Tasarımın gereksinimlerine ve hedef kitlenize bağlı olarak farklı birimlerin kullanılması da mümkündür.

Konu hakkında daha detaylı bilgiler için aşağıdaki linkleri kullanabilirsiniz.

https://medium.com/frontend-development-with-js/css-units-pixel-em-ve-rem-6515563c69b4

https://www.yazilimkodlama.com/css/css-px-em-rem-kullanimi/

https://www.tercihyazilim.com/Page/responsive-font-size

https://www.elephdev.com/web/212.html


10 Ağustos 2020 Pazartesi

Binary Search Tree / İkili Arama Ağacı nedir?

Sizlerden sorular geldikçe olabildiğince cevapları yazılı olarak ve örneklerle vermeye çalışıyorum. İşte bir soru daha;

SORU: BinarySearchTree öğrenmem gerekiyor. Neden ihtiyaç duyulur? Nerelerde kullanılır? Örnek verebilir misin?

BinarySearchTree (BST), veri yapısı olarak ağaç yapısını kullanan bir veri yapısıdır. BST'de her düğüm, kendisinden daha küçük olan düğümlerin solunda ve kendisinden daha büyük olan düğümlerin sağındadır. BST'nin kullanımı birçok algoritma ve veri yapısı için önemlidir ve geniş bir uygulama alanı vardır. İşte BinarySearchTree'in neden ihtiyaç duyulduğu ve nerelerde kullanıldığına dair bazı örnekler:

Sıralama: BST, verileri sıralı bir şekilde depolayarak hızlı sıralama işlemleri yapılmasını sağlar. Düğümler arasındaki doğal sıralama düzeni sayesinde verilerin eklenmesi, aranması ve kaldırılması hızlı bir şekilde gerçekleştirilebilir.

Arama: BST, bir veri kümesinde hızlı arama işlemleri için kullanılabilir. Her düğüm, kendisinden daha küçük olan düğümlerin solunda olduğu için aranan değerin yerini bulmak için sadece düğümleri karşılaştırmak yeterlidir. Bu, arama işleminin ortalama olarak O(log n) karmaşıklığında gerçekleşmesini sağlar.

Veri Yapıları: BST, diğer veri yapılarının temelini oluşturabilir. Örneğin, öncelik kuyruğu (priority queue) veya dengeleme ağaçları gibi veri yapıları, BST'nin temel mantığından yararlanır.

Otomatik Tamamlama ve Önerme: BST, metin tabanlı uygulamalarda kullanıcıya otomatik tamamlama veya önerme sunmak için kullanılabilir. Örneğin, bir arama çubuğunda kullanıcının yazdığı kelimeleri tamamlamak veya benzer öğeleri önermek için BST kullanılabilir.

Örnek:
Bir müzik yayın platformunda şarkılar bir BST içinde depolanabilir. Her düğümde, şarkının adı, sanatçısı ve yayın tarihi gibi bilgiler bulunur. Kullanıcılar, şarkıları aramak, sıralamak veya belirli bir tarihten sonra yayınlanan şarkıları bulmak için BST'yi kullanabilirler. Ayrıca, kullanıcının yazdığı kısmi bir şarkı adına göre otomatik tamamlama özelliği sunulabilir. BST'nin düzenli sıralama ve hızlı arama özellikleri sayesinde kullanıcılar, istedikleri şarkıları kolayca bulabilir ve müzik deneyimlerini geliştirebilirler.

BinarySearchTree hakkında görselleri bulabileceğiniz birkaç kaynak önerebilirim.

Bu kaynaklar, BinarySearchTree'in nasıl çalıştığını görsel olarak anlamanıza yardımcı olacaktır.

Visualgo: Visualgo, çeşitli veri yapılarının görsel temsillerini sağlayan interaktif bir web sitesidir. BinarySearchTree'i de görsel olarak anlatan animasyonlara sahiptir. Aşağıdaki linkten Visualgo'nun BinarySearchTree sayfasına erişebilirsiniz:

https://visualgo.net/bn/bst

Wikipedia: Wikipedia'da BinarySearchTree hakkında bilgiler ve görseller bulunabilir. Aşağıdaki linkten Wikipedia'nın BinarySearchTree sayfasına erişebilirsiniz:

https://en.wikipedia.org/wiki/Binary_search_tree

CodesDope:

https://www.codesdope.com/course/data-structures-binary-search-trees/