Ruby Kod Parçacıkları 29 - Kod Yazan Kodlar

Ruby programlama dilinin öne çıkan özellikleri arasında dinamiklik ve meta programlama yetenekleri de yer almaktadır. Aslında işin özeti kod yazan kodlardır diyebiliriz. Ruby yorumlamalı bir dildir ve doğal olarak her şey çalışma zamanında icra edilmektedir. Ancak bazı senaryolarda metinsel olarak gelen bir içeriğin kod parçası şeklinde değerlendirilmesi ve çalışma zamanında yürütülmesi istenebilir. Hatta çalışan kod üzerinde değişiklikler yapılabilmesi de belli ölçülerde mümkündür. Konu pek tabii benim burada anlatacağım kadar basit değil. Örneğin Amazon'da bu konu üzerine yazılmış kitaplar bulabilirsiniz. Bu yazımızda kodu çalışma zamanında üretmek veya çalışan kodu manipule etmek için yapılabileceklerden bir kaçına değinmeye çalışacağız. [Daha fazla]

Tek Fotoluk İpucu 148 - Hassas Bilgiyi Hash'leyerek Saklayalım

Yazdığımız bir uygulamada kullanıcının anne kızlık soyadı, kimlik numarası, şifre ve benzeri bilgilerini aldığımızı düşünelim. Bir arayüz üzerinden giriliyor olabilirler. Bu bilgileri herhangibir amaçla veritabanında sakladığımızı varsayalım. Şirket güvenlik politikları gereği ilgili bilgiler açık bir şekilde tutulmamalı. Yani anne kızlık soyadı, şifre veya kimlik numarası gözle okunabilir halde tutulmamalı. Buna göre ilgili bilgileri veritabanı üzerinde maskeleyerek saklamak doğru bir çözüm olabilir. Bunu yapabilmek için akla gelen yollardan birisi de tahmin edileceği üzere Hash algoritmalarına başvurmaktır. [Daha fazla]

GDG DevFest Edirne'de Buluşalım

Bu sene yeni yetme bir Rubyist olarak Bolu Abant İzzet Baysal Üniversitesi'nin düzenlediği GDG festivaline katılma fırsatı bulmuştum. Ardından Ruby dilini Karabük Üniversitesi'ndeki genç meslektaşlarımızla da paylaştım. Her ne kadar Google'ın bir ürünü olmasa da Ruby dilini anlatmak için bir fırsat daha buldum. Bir aksilik olmazsa 18 Aralık Pazar günü GDG Edirne'nin düzenlediği etklinlikte Ruby dilini tanıtmaya çalışacağım. Program inanılmaz derecede güzel. İtiraf etmek gerekirse diğer konulara bakıldığında arada biraz sırıtıyor gibiyim. Yine de değerli katılımcılarımıza Ruby konusundaki bilgilerimi elimden geldiğince iyi bir şekilde aktarmaya çalışacağım. [Daha fazla]

Ruby Kod Parçacıkları 28 - Multithreading ve Mutex Kullanımı

Ruby Kod Parçacıkları serimizin bir önceki bölümünde çoklu iş parçacıklarının(Multithreading) nasıl yazılabileceğini incelemeye başlamıştık. Başrol oyuncumuz olan Thread sınıfının kullanımını gördük. Lakin birden fazla iş parçacığının ele alındığı senaryolarda dikkat edilmesi gereken önemli konulardan birisi de ortak veriler üzerinde işlemler yapıldığında ortaya çıkmaktadır. Eş zamanlı olarak çalışan iş parçacıkları bazı durumlarda verinin tutarlılığının bozulmasına neden olabilir. Nitekim n sayıda iş parçacığının farklı anlarda aynı veri üzerinde işlem yapması söz konusudur. Birbirlerinin işlerini kesebilirler. [Daha fazla]

Tek Fotoluk İpucu 147 - Port Dinlemek

Diyelim ki bir sunucu üzerinde tanımlı portların anlık durumları hakkında bilgi sahibi olmak istiyorsunuz (Örneğin sunucuda SQL Server yüklü ise varsayılan 1433 portu açık mı veya ftp portu cevap verir konumda mı vb) Ruby dilinde bu tip bir işlevselliği gerçekleştirmek son derece basit. Tek yapmamız gereken makine adı ve port bilgisini kullanmak. Nasıl mı? Aynen aşağıdaki fotoğrafta olduğu gibi. [Daha fazla]

Karabük Üniversitesi Bilişim Günleri 2016

Kısmet olursa 7 Aralık günü Karabük Üniversitesi Bilişim Teknolojileri Kulübü'nün düzenlediği etkinlikte Ruby konulu bir sunum yapacağım. Uzun süredir amatör olarak ilgilendiğim Ruby programlama dilini değerli meslektaşlarıma tanıtmaya gayret edeceğim. İki gün sürecek etkinlikler boyunca birbirinden değerli konuşmacıların sunumları da olacak. [Daha fazla]

Ruby Kod Parçacıkları 27 - Hello Multithreading

Multithreading, programlamanın zor konularından birisidir. Aslında amaç işlemciye aynı andan birden fazla iş yaptırabilmek ya da bir işi parçalara bölerek eş zamanlı olarak yürütebilmektir. İşlemcinin bu farklı iş parçacıkları(Thread) arasında kısa sürelerde geçişler yapması sonucu istenen sonuçlara daha çabuk ulaşılması sağlanır. Bu, performans gerektiren bazı vakalarda oldukça önemlidir. Büyük veri kümelerinde arama yapan algoritmalar, yüksek boyutlu video görüntülerinin render eden programla, çeşitli matematik problemleri, oyun programlama ve daha pek çok alanda çoklu iş parçacığı tekniklerine başvurulur. [Daha fazla]