Stackoverflow Sevgi Anketinde Yıllardır Bir Numara Çıkan Programlama Dili Rust Kimdir? 31 Aralık 2020 Burak-Selim-Senyurt Rust Stackoverflow 2020 yılı geliştirici anketine göre en sevilen programlama dili olduğunu söylemeden geçmeyelim ki bu son birkaç yıldır da böyle. Fonksiyonel programlama paradigmasına ait özellikler barındıran Rust daha çok sistem seviyesinde programlama için tasarlanmış bir dil ancak farklı kullanım alanları da var. Örneğin Deno platformu, Microsoft Azure IoT Edge'in çok büyük bir kısmı, Servo isimli yüksek hızlı tarayıcı motoru, TockOS, Tifflin, RustOS, QuiltOS, Redox gibi işletim sistemleri, Linux ls komutunun alternatifi olan exa bu dil kullanılarak geliştirilmiş. Bunların dışında oyun motorları, derleyiciler, container'lar, sanal makineler(VM), Linux dosya sistemleri ile gömülü cihaz sürücülerinin geliştirilmesinde de tercih ediliyor. Bir başka ifadeyle Rust diliyle iş odaklı uygulamalar harici yazılım ve yazılım platformları geliştirildiğini ifade edebiliriz. Bu nedenle Rust donanım dostu bir dil desek yeridir. [Daha fazla]
Core Web API için Planlanmış Görevler 09 Şubat 2018 Burak-Selim-Senyurt .Net Core Bu makalemizde Hosted Service olarak adlandırılan ve arka plan işleri(background jobs) ya da planlanmış görevler ile ilişkilendirilmiş servislerin Web API gibi WebHost türevli uygulamalarda nasıl ve ne amaçla kullanılabileceklerini inceleme çalışıyoruz. [Daha fazla]
Şubat Bültenim 20 Şubat 2012 Burak-Selim-Senyurt Journal Bir ayı daha devirdik. Biraz kısa bir ay oldu tabi ama maaş gününün daha kısa sürede geldiğini düşünecek olursak hiç üzüldüğümü söyleyemeyeceğim. [Daha fazla]
Parallel Programming–Reduction 02 Aralık 2011 Burak-Selim-Senyurt Parallel Programming Şimdi şöyle düşünelim; elimizde yüsek boyutlu sayısal bir dizi veya koleksiyon olsun ve biz bu sayı kümesi üzerinde örneğin 7 ile tam bölünebilenlerin sayısını bulmak istediğimizi var sayalım. Standart bir for döngüsü ile bu işlemi yapabileceğimiz gibi, çok yüksek boyutlu bir sayı olması halinde Parallel.For veya Parallel.ForEach metodlarını da söz konusu hesaplama için kullanabiliriz pekala... [Daha fazla]
Task Relations–Continuation Metodları 18 Kasım 2011 Burak-Selim-Senyurt Parallel Programming Continuations tekniklerinde, bir Task’ ın çalıştırılması veya icra edilmesi, atası olan ya da öncesinden tanımlanıp kendisine bağlanan Task örneklerine bağlıdır. Normal şartlar altında size tek bir Task örneği ve bu Task çalışmasını bitirdikten sonra devreye girmesi gereken bir Task örneğinin ele alındığı senaryoyu aktarmam gerekiyor. Ancak bana göre konunun daha iyi anlaşılabilmesi için aşağıdaki kod parçasında yer alan örneği göz önüne alarak başlamamız daha doğru olacaktır [Daha fazla]
Barrier Class, Sıralama Algoritmaları ve At Yarışı 17 Ekim 2011 Burak-Selim-Senyurt Parallel Programming Durumu daha iyi analiz edebilmek için dilerseniz basit bir senaryo üzerinden ilerlemeye çalışalım. Malumunuz günümüz üniversitelerinde özellikle algoritma derslerinde en çok sorulan, okutulan, ezberletilen konuların başında sıralama teknikleri gelmektedir. Bubble Sort, Quick Sort, Insertion Sort vb… [Daha fazla]
Tek Fotoluk İpucu - 8 (Parallel ConcurrentBag) 28 Haziran 2011 Burak-Selim-Senyurt .Net Framework 4.0, Tek Fotoluk Ipucu Merhaba Arkadaşlar, Concurrent Collections deyince aklımıza Thread-Safe koleksiyon tipleri gelmelidir. Söz gelimi bir ConcurrentBag koleksiyonunun basit kullanımına bir örneği aşağıdaki gibi verebiliriz. Concurrency.rar (23,94 kb)
Composite Cancellations 26 Nisan 2011 Burak-Selim-Senyurt Parallel Programming, TPL Bildiğiniz üzere Task iptal taleplerinde, CancellationTokenSource örneğine ait Cancel metodunun çağırılması gerekmektedir. CancellationTokenSource örneği üzerinden yapılan iptal taleplerinin hangi Task işleyişini keseceğinin belirlenmesinde ise CancellationToken örneklerinden yararlanılmaktadır. [Daha fazla]
Task İptal İşlemlerinin İzlenmesi(Monitoring Cancellation) 23 Nisan 2011 Burak-Selim-Senyurt Parallel Programming Bu yazımızda daha önceden .Net Framework Beta 1 ve Beta 2 sürümlerinde incelediğimiz Task iptal işlemlerini son sürümde ele alıp toparlamaya çalışıyor olacağız. [Daha fazla]
TPL Senkronizasyonu Sağlamak – 2 (Interlocked) 31 Ocak 2011 Burak-Selim-Senyurt Parallel Programming Hatırlayacağınız üzere TPL Senkronizasyonu Sağlamak – 1 başlıklı yazımız ile Task Parallel Library(TPL) tarafında senkronizasyon kullanımını incelemeye başlamıştık. Aslında başımıza iş mi açtık bilemiyorum ama sonuç itibariyle kritik bir konu olduğunda sanıyorum ki hepimiz hem fikiriz. Önceki yazımızda değerlendirdiğimiz senaryoda, lock keyword kullanımı ile izole edilmiş bir veri alanının, farklı iş parçaları tarafından nasıl güvenli bir şekilde kullanılabileceğini analiz etmiştik. Üstelik bu keyword’ ün aslında arka planda Monitor tipini kullandığını da Intermediate Language(IL) kodunda görmüştük. Elbette iş parçalarının senkronizasyonu için kullanılabilecek farklı tipler de söz konusudur. Interlocked sınıfı gibi. [Daha fazla]
TPL Senkronizasyonu Sağlamak - 1 27 Ocak 2011 Burak-Selim-Senyurt Parallel Programming, TPL TPL ve Shared Data Isolation başlıklı yazımızda, n sayıda Task örneğinin ortaklaşa kullandıkları bir veri alanı üzerindeki işlemlerinin, ne gibi sonuçlara yol açabileceğini incelemiş ve bunun önün geçmek için basit bir kaç yolu ele almıştık. [Daha fazla]
TPL ve Shared Data Isolation 20 Ocak 2011 Burak-Selim-Senyurt Parallel Programming Task Parallel Library alt yapısını kullanarak geliştirdiğimiz paralel kodlarda önem arz eden konulardan birisi de, paylaşılan verilerin hesaplamalara katıldığı durumlardaki sonuç tutarlılıklarının nasıl sağlanacağıdır. Bunun bilinen bir kaç yolu vardır. Aslında bir tanesi ve en basiti kodu tamamen senkron olarak geliştirmektir. Yani paralel çalıştırmak gibi bir maceraya hiç girmemektir. Diğer bir yol ise Task örnekleri içerisinde ele alınan paylaşılmış verilerin izole edilerek kullanılmasıdır. [Daha fazla]
Paralel Programlamada İstisna Yönetimi 13 Ocak 2011 Burak-Selim-Senyurt Parallel Programming Task örneklerinin kullanıldığı senaryolarda, bloklar içerisinde yer alan işlevselliklerin doğurabileceği çalışma zamanı istisnalarını ele almak, son derece önemlidir. Nitekim paralel çalışmakta olan blokların beklenmedik bir şekilde sonlandırılması söz konusudur. İşte bu yazımızda Task örnekleri içerisinde oluşabilecek istisnaların nasıl ele alınabileceğini incemelye çalışıyor olacağız. [Daha fazla]
Task Wait,WaitAll,WaitAny 06 Ocak 2011 Burak-Selim-Senyurt Parallel Programming Task Süreçlerinde Bilinçli Olarak Duraksatma başlıklı bir önceki yazımızda CancellationToken.WaitHandle.WaitOne, Thread.Sleep ve Thread.SpinWait metodlarından yararlanarak bir Task çalışmasının bekletme işlemlerinin nasıl yapılabileceğini incelemeye çalışmıştık. [Daha fazla]
Task Süreçlerinde Bilinçli Olarak Duraksatma 31 Aralık 2010 Burak-Selim-Senyurt Parallel Programming Bu günkü konumuz Task nesne örneklerinin işlettikleri süreçleri bilinçli olarak nasıl bekletebileceğimiz ile ilgilidir. Pek çok sebepten dolayı Task örneklerinin çalıştırdıkları iş parçalarının belirli süreler boyunca veya süre bağımsız olarak bekletilmeleri istenebilir. Burada zaman bağımlı ya da koşul bağımlı olarak bekletmelerin/duraksatmaların yapılabilmesi söz konusudur. Genel olarak 3 farklı bekletme tekniğinden söz edebiliriz. [Daha fazla]
AttachedToParent Hakkında Detaylar 02 Eylül 2010 Burak-Selim-Senyurt Parallel Programming, TPL Daha önceki iki yazımızda(Parent-Child Tasks Kavramı, Parent-Child Task Exception Durumlar) sürekli olarak AttachedToParent metodunun belirli bir kullanımını ele aldık. Oysa ki, Child Task örneklerinin Parent Task örneklerinin yaşam döngülerine eklenmelerinde izlenebilecek birden fazla yol bulunmaktadır. Buna göre Parent Task örneğine dahil olmak için aşağıdaki tekniklerden herhangibirisinden yararlanılabilir. [Daha fazla]
Parent-Child Task Exception Durumları 03 Ağustos 2010 Burak-Selim-Senyurt C# 4.0, Parallel Programming, TPL Hatırlayacağınız üzere Parent-Child Tasks Kavramı başlıklı yazımızda .Net Framework 4.0 tarafında paralel programlamada önemli bir yere sahip olan Task örnekleri arasındaki Parent, Child ilişkiyi incelemeye çalışmıştık. Parent-Task nesne örnekleri arasındaki ilişkilerde bilinmesi gereken konulardan birisi de, istisnaların nasıl ele alındığıdır(Exception Handling). Aslında konuya hızlı bir giriş yaparak ilerlememiz şu aşamada avantajımız olacaktır. [Daha fazla]
Microsoft Teknoloji Günleri Akşam Sınıfı – Gün 2 – Paralel Programlama Tamamlandı 23 Haziran 2010 Burak-Selim-Senyurt Eğitimler Microsoft Teknoloji Günleri Akşam Sınıfının ikinci eğitimi olan Paralel Programlama dersimizi, 22 Haziran 2010 günü Microsoft İstanbul Ofisi Jupiter 1 salonunda gerçekleştirdik. Öncelikle katılan tüm arkadaşlarımıza, ilgi ve alakaları için teşekkür ediyorum. [Daha fazla]
TPL – Göz Göre Göre Başımızı Belaya Sokmak 21 Haziran 2010 Burak-Selim-Senyurt Parallel Programming, TPL Ancak birden fazla iş parçasının da deadlock’ a düşmesi, bir başka deyişle birbirlerini beklemeleri nedeniyle, içinde çalıştıkları Thread’ i(çoğunlukla ana uygulama iş parçası-Main Thread) kitlemeleri söz konusudur. Durumu daha net anlayabilmek için aşağıdaki kod parçasını göz önüne alalım. [Daha fazla]
Microsoft Teknoloji Günleri Akşam Sınıfı – Gün 2 - .Net 4.0 ile Paralel Programlama 17 Haziran 2010 Burak-Selim-Senyurt Eğitimler Tarih 22 Haziran 2010 Salı Saat 19.00 - 21.30 Yer Microsoft İstanbul Ofisi Eğitmen: Burak Selim Şenyurt Microsoft MVP Microsoft Teknoloji Günleri - Akşam Sınıfı Her ay düzenli olarak gerçekleştirece... [Daha fazla]
Parent-Child Tasks Kavramı 11 Haziran 2010 Burak-Selim-Senyurt Parallel Programming, TPL Ancak Task nesne örneklerinin devreye girdiği noktada, Parent-Child ilişkiler kurularak Planlanmış/Yapılandırılmış görevlerin(Structured Tasks) oluşturulması da mümkündür. [Daha fazla]
Microsoft Teknoloji Günleri Akşam Sınıfında Buluşalım 22 Mayıs 2010 Burak-Selim-Senyurt Eğitimler Her ay düzenli olarak gerçekleştireceğimiz ve bir seri olarak birbirini takip edecek sınıf etkinliklerimizle 9 ay boyunca siz yazılım geliştiren ve tasarım yapan iş ortaklarımızla birlikte olacağız. Aşağıda detaylarını paylaştığımız ve sizler için hayli faydalı olacağına inandığımız Microsoft Teknoloji Günleri Akşam Sınıfı Etkinliğimize kaydınızı hemen yaptırabilirsiniz. [Daha fazla]
Int32 ve Int64 Haricindekiler için Parallel.ForEach 17 Mayıs 2010 Burak-Selim-Senyurt Parallel Programming Dolayısıyla bazı durumlarda en tepeden aşağıya doğru inen ve bağlı liste(Linked List) benzeri bir oluşumun sağlanması zorlaşmaktaydı. Her neyse...Eminim bu sorunlar çoktan aşılmıştır. Ancak bir önceki cümlede yer alan bağlı liste tarzı yapıların başında dolaşan bir kara bulut daha mevcuttur. Sorunun kaynağında paralel programlama amacıyla .Net ortamına kazandırılan Parallel.ForEach döngüsü yer almaktadır. Dilerseniz öncelikle sorunu masaya yatıralım. Bu amaçla aşağıdaki kod içeriğine sahip Employee isimli basit bir sınıfımız olduğunu düşünelim. [Daha fazla]
Workflow Foundation 4.0 - Paralel Olmak ya da Olmamak 16 Mart 2010 Burak-Selim-Senyurt WF 4.0 RC Geçtiğimiz günlerde Workflow Foundation 4.0 içerisinde NativeActivity türevli bileşenlerde hata yönetiminin nasıl yapılabileceğini incelerken, ne olduysa kendimi ParallelForEach aktivitesini çalıştırmaya uğraşırken buldum. Bir türlü istediğim gibi ayrı Thread parçaları oluşturulmuyor dolayısıyla aktivite içerisine aldığım işler paralel olarak yürütülmüyordu. [Daha fazla]
Paralel Programlamada Performans, Hız, Verimlilik ve Ölçeklenebilirlik Ölçümleri 22 Şubat 2010 Burak-Selim-Senyurt Parallel Programming Ben Matematik Mühendisliği eğitimi almış bir bireyim. Öğrenim hayatım boyunca en çok yaptığım işlerden birisi, matematiksel teoremlerin bilimsel ispatlarını gerçekleştirmek olmuştur. Hemen hemen mühandisliğin her alanındaki farklı problemlerin modellenmesi ve ispatlarının yapılarak en uygun yol olduklarının gösterilmesi adına pek çok kağıt karalamış ve tüketmişimdir. [Daha fazla]