Meraklı bir bilgisayar programcısının notları.
Merhaba! Ben Burak Selim Şenyurt - yazılım geliştirici, blogger ve öğrenme tutkunu.
Bu blogda yazılım mühendisliği, sistem tasarımı, programlama dilleri ve yeni teknolojiler üzerine yazılar paylaşıyorum. Özellikle .NET, Rust, Zig, yapay zeka araçları ve mimari konularına ilgi duyuyorum. Kendimi sürekli geliştirmeye ve yeni şeyler öğrenmeye adıyorum.
-
Tek Fotoluk İpucu 89–Exif Bilgilerini Okumak
Takip edenler amatör düzeye yaklaşmaya çalışan/çabalayan fotoğrafçılık tutkunu birisi olduğumu bilirler. Hatta okullarda “Fotoğrafçı ve Hataları…” konulu bir ders konusu olabilecek kadar iddialı bir foto bloğumda da bulunmaktadır. Bu bloğa fotoğraf yüklerken her seferinde yapmak zorunda olduğum ama bundan çok fazla derecede sıkıldığım bir işlemde fotoğrafların exif bilgilerini öğrenip yazmaktır. Oysaki Image tipine eklenebilecek bir Extension metod ve fotoğrafa ait bazı özellik bilgilerinden yararlanarak ISO, EV, Focal Length gibi istediğim temel bilgilere ulaşabilirim. Nasıl mı? Aynen aşağıdaki fotoğrafta görüldüğü gibi
-
Tek Fotolok İpucu 88–Task.WaitAll out, Parallel.Invoke in
Bildiğiniz üzere paralel çalışmasını istediğimiz görevler olduğunda genellikle bunları birer Task halinde üretir ve bir dizi içerisinde toplarız (En azından TPL-Task Parallel Library geldikten sonra böyle yapmakta olduğumuzu ifade edebiliriz) Görevleri Task tipinden bir dizi içerisinde toplamamızın sebebi ise genellikle WaitAll gibi bir çağrıya ihtiyaç duyabilecek olmamızdır.
-
Tek Fotoluk İpucu 87–Enum Sabitleri ile Attribute Kullanımı
Bazen uygulamalarımızda kullandığımız Enum sabitlerinin içerikleri anlaşılabilir kelimelerden oluşmayabilir. Örneğin AR101,BR103 isimli Enum değerleri çalışma zamanında nasıl yorumlanabilirler. Mantıklı isimler verebilecek olsak da bazen bu değerler sistemin kendisi için anlamlı olabilirler. Ancak dilerseniz enum sabiti değerlerini, kendi geliştireceğiniz nitelikler (Attribute) ile donatabilir ve çalışma zamanına ek bilgiler sunabilirsiniz. Hem de basit bir extension metod yardımıyla bu fonksiyonelliğin kolayca ulaşılabilir olmasını sağlayabilirsiniz. Nasıl mı? İşte size bir örnek
-
Tek Fotoluk İpucu 86–Zahmetsizce Encryption (ProtectedMemory)
Bir önceki tek fotoluk ipucunda ProtectedData sınıfından yararlanmış ve basitçe bir byte dizisinin nasıl şifrelenebileceğini/çözümlenebileceğini görmüştük. Hatırlarsanız veriyi Current User ve Local Machine seviylerinde ele alabiliyorduk. DPAPI’ nin kullanıldığı veri odaklı bu tekniğin yanında, bellek üzerinde yer alan bir içeriğin Process bazında şifrelenmesi/çözümlenmesi de mümkündür. Aynı Process (SameProcess), farklı Process (CrossProcess) veya aynı giriş (SameLogon) bilgisi için…Üstelik son derece de kolay bir şekilde. Nasıl mı?
-
Tek Fotoluk İpucu 85–Zahmetsizce Encryption(ProtectedData)
Cryptography denilince.Net Framework tarafında epey bir çözüm bulunmakta. Bazıları oldukça karmaşıktır ve simetrik yada a-simetrik olmalarına bağlı olaraktan, ortak noktalarından birisi de, tekniğe göre kullanılan Vector-Key değerlerinin tutulması/bilinmesi gibi zorunluluklardır.
-
Tek Fotoluk İpucu 84–WCF içerisinde Property Kullanımı
Malum bildiğiniz üzere get ve set bloklarından oluşan özellikler (Properties) aslına bakarsanız arka planda (IL-Intermediate Language) birer metod olarak ifade edilirler. Bu teoriden yola çıkarsak bir servis içerisine özellik (Property) yazıp get,set metoldarını operasyon olarak dış dünyaya sunabiliriz. Nasıl mı? Aynen aşağıdaki fotoğrafta görüldüğü gibi.
-
Tek Fotoluk İpucu 83–XML, XAML, XmlDataProvider ve Master Child Binding
Diyelim ki elinizde aşağıdaki gibi Master-Child veri ilişkisi içeren (1 gruba bağlı birden fazla albüm) bir XML dosyası var.
-
Tek Fotoluk İpucu 82–Internete Bağlı mıyız? (Round II)
Bir önceki ipucumuzda wininet.dll WinAPI kütüphanesinden yararlanarak, internet’ e bağlı olup olmadığımızı nasıl öğrenebileceğimizin fotoğrafını çekmiştik. Tahmin edeceğiniz üzere söz konusu senaryo için tek yol bu değil. Örneğin aşağıdaki gibi bir kullanımı da tercih edebilirsiniz.
-
Tek Fotoluk İpucu 98–Stopwatch ile Performans Ölçümü
Diyelim ki elinizde çeşitli tipte ve sayıda fonksiyon var ve bunların çalışma zamanındaki işleyiş sürelerini hesaplamak istiyorsunuz. Normal şartlarda her metoda gidip DateTime tipini ele alarak süre ölçümleri yapabiliriz. Ya da Delegate sınıfına bir genişletme fonksiyonu yazarak sorunu halletmeye çalışırız. Aynen aşağıdaki ekran görüntüsünde olduğu gibi.
-
Tek Fotoluk İpucu 96–10Mb Üstü XML Dosyaları
Geçtiğimiz günlerde bloğumdaki içeriği yedeklemek için dışarı aktardım. Yaklaşık olarak 20Mb büyüklüğündeki XML içeriğini, sonrasında Visual Studio 2012 ile açıp incelemek istedim. Ancak bulunduğu ortamdaki Visual Studio 2012, 10 Mb üstü XML içeriğini açamayacağını, ille de açmak istiyorsam Registery’ de bu konu ile ilişkili değeri değiştirme gerektiğini söyledi. Sonuç olarak aşağıdaki düzenlemeyi yaparak bu kısıtlamayı aşabilirsiniz.
-
Tek Fotoluk İpucu 95–OfType<T>
LINQ (Language INtegrated Query) tarafını her ne kadar yoğun kullanıyor olsak da gözümüzden kaçırdığımız, dikkat etmediğimiz, yerine yeni geliştirmeler yaptığımız ama aslında bizim kullanmamızı bir köşede bekleyen fonksiyonlar vardır.
-
Tek Fotoluk İpucu 99–Tipler Arası Property Eşleştirme
Özellikle ORM araçlarının ele alındığı uygulamalarda bazen Entity içeriklerini sistem içerisinde dolaştıran ve nispeten daha az sayıda özellik (asıl ihtiyaç olunanları) taşıyan tiplere ihtiyaç duyarız. Business Object veya Data Transfer Object gibi isimler de verirler bunlara.
-
WCFden, XML Web Servisine TransactionScope Activity Bileşeni Üzerinden Transaction Aktarmak
Bir süre öncesine kadar Composition adı verilen bir katmanda yer alacak çeşitli servisler ile yoğun şekilde güreşmekteydim. Çok fazla faktör, çok fazla farklı sistem ve tabiri yerinde ise oyun ve oyuncu söz konusuydu. WCF servisleri, XML Web Servisleri, Java tabanlı olanları ve belki de yarın gelecek olan çeşitli COM bileşenleri, 3ncü parti uygulamalar, koduna müdahale edemeyeceğimiz programlar vs.
-
Team Foundation Server 2012 ile Düzenli Proje Geliştirme
Bu görsel dersimizde Team Foundation Server 2012 ürününe kısaca göz atmaya çalışıyoruz. TFS’in tek başına değerlendirilmemesi gerektiğini, bir Application Lifecycle Management aracı olduğunu, Agile odaklı süreçleri (Scrum, MSF) hedeflediğini, SQL Server, Reporting Services, Analysis Services, Sharepoint, System Center gibi pek çok ürünü de bünyesinde barındırdığını, bu nedenle dev bir eko sistem olduğunu, bir servis olarak Cloud üzerinden sunulabildiğini ifade etmeye çalışıyoruz. Anlatımlarımız sırasında Scrum’ın örnek işleyişine değiniyor, Gartner Magic Quadrant raporlarına kadar gidiyor ve hatta Product Life Cycle eğrisine bile bakıyoruz.
-
TFS Web Services ve Kullanımları
Yedek Subay olarak askerlik hizmetimi yerine getirdiğim yıllarda (O zamanlar 16 ay idi) Jandarma Genel Komutanlığı Personel Şube’ de görev almıştım. Aslında temel işim Powerpoint ile sunum hazırlamaktı ama verilen emir her ne ise onu da yerine getirmek mesuliyetini taşımaktaydım. Bir gün komutanım ile birlikte yine sivil hayat için anlamsız olan ama askeri disiplin kuralları çerçevesinde gayet de makul görünen bir işe adanmıştık. Neredeyse tüm komutanlık personelinin iğneli Printer’ dan çıkartılmış karınca yazısı ebatlarındaki bilgilerini, bir diğer koca liste ile karşılaştıracak ve bir filtreleme işlemi gerçekleştirecektik. (İşin yaklaşık olarak kesintisiz çalışma ile 48 saate varabileceğini biliyorduk)
-
TFS–Client Object Model için Hello World
Çok eskidendi diyemeyeceğimiz kadar yakın bir zamanda, bilgisayar programcılarının ilah olduğu devirlerde, evimizin 37 ekran TV’ lerine girmiş Commodore 64K, Amiga oyunlarına sabaha kadar vakit ayırdığımız yıllarda; ne Source Code Control denen bir kavram vardı, ne de 9 kişilik askeri manga misali çalışan Scrum ekipleri. Ancak teknoloji ve yazılım dünyası öylesine hızla ilerledi ki…Koşar adımlarla geldiğimiz günümüzde, özellikle Enterprise çapta yürütülen projelerde, ekip olmadan hareket etmek neredeyse imkansız hale geldi.
-
Tek Fotoluk İpucu 81–Internete Bağlı mıyız?
Acaba çok basit ve hızlı bir şekilde internete bağlı olup olmadığımızı nasıl kontrol edebiliriz, hiç düşündünüz mü? Bunun pek çok yolu var aslında. Ancak bir tanesi oldukça hızlı. Basit bir WinAPI yardımıyla bu fonksiyonelliği sağlayabilir ve internete bağlı olup olunmadığını kontrol edebiliriz. Aynen aşağıdaki ekran görüntüsünde yer alan kod parçasında olduğu gibi.
-
WCF Service' lerinde Routing ile Versiyonlama
Geçen gün şöyle eskiden yazmış olduğum makalelere bir bakayım dedim. Derken gözüm WCF 4.0’ ın Beta zamanlarında yazdıklarıma takıldı. O zamanlar.Net Framework 4.0’ ün Beta sürümü çıktığında, incelemeye çalıştığım önemli yeniliklerden birisi de yönlendirme servisleri (Routing Service) idi. İstemciden gelen talepleri analiz ederek, arka planda yer alan asıl servislere mesajların taşınması noktasında göz önüne alınabilecek önemli bir kabiliyet sunulmaktaydı. Aslında RoutingService, buradaki işi güçlü filtreleme özellikleri ile epeyce kolaylaştıran bir tip olarak karşımıza çıkmaktaydı. Hatta bu konuyu bir kaç makale ile de ele almaya çalışmıştım.
-
Heryerden TFS Kullanabilmek
Fotoğrafta bir duvar prizi içinden USB bağlantısı yapıldığını ve cep telefonunun şarj edildiğini görmektesiniz. Bir süredir hayatımızda olan ilginç buluşlardan birisi de USB Priz’ ler. Bu aslında USB’ nin pek çok farklı ortama entegre edilebilmesi anlamına da geliyor. Söz gelimi bir süredir pek çok araç modelin USB çıkışları neredeyse standart. Telefonlarımızı yol boyunca şarj edebiliyoruz. Hatta USB olmayan araçlarda, çakmaktan gelen enerjiyi USB bağlantısı ile aktaran ara dönüştürücüler bile var. Dolayısıyla çeşitli ve pek çoğu standart hale gelen cihazlar ile USB çıkışları verebilmek mümkün. Nerden geldik şimdi bu USB Priz konusuna. Hem bir Plug-In gibi görülebildiği hem de entegrasyon anlamında sağladığı yetenekleri göz önüna alalım.
-
NoSQL Maceraları - Graph Database DEX
Eminim pek çoğunuzun hastası/fanatiği olduğu yerli veya yabancı diziler vardır. Küçük bir çocukken çizgi filmlere olan düşkünlüğümüz kadar olmasa da, hemen her bölümünü heyecanla beklediklerimiz mutlaka vardır (Hatta ülkemizde geç yayınlanıyor diye ilgili dizileri internetten indirenlerimizde vardır) Bilişim alanında görev alanların ağırlıkla CNBC-E gibi kanallarda yer alan dizilere olan bağımlılığı da aslında su götürmez bir gerçektir. Örneğin benim fanatiği olduğum dizilerden birisi Dexter ve ne tesadüftür ki bu gün yazımızda ele alacağımız ürünün adı da onun lakabı ile eş: DEX