My Profile Photo

Mehmet Cem Yücel


Technical Writings.
Architecture, Security, Java, Golang, Devops, Microservices, Spring Boot, Kafka, Distributed Systems and Blockchain


  1. Bitcoin Futures ile Bitcoin 2.0

    https://cdn-images-1.medium.com/max/150/1*nd56s97FhQYI_5l4uJYb1A.jpeg

    Blockchain dünyası ve bu dünyadaki örnekler çok hızlı değişiyor. Buradaki yazımızda Blockchain 1.0 olarak tanımladığımız currency aktarımı sağlayan Bitcoin’e CME Group BTC borsasında yeni bir özellik hayata geçti. Aslında hayata geçen bir smart contract örneğinin chainin kendi döngüsü dışında hayata geçirilmiş versiyonu da denebilir, bu özellik gelecek bir tarihte belirlenen bir tutardan Bitcoin alım ve satım yapma anlaşmasını yapabilmeye olanak sağlıyor. …


  2. Asimetrik Şifreleme ve Blockchain

    https://cdn-images-1.medium.com/max/150/1*pUyqVMAKs2GknumbLB9K7w.jpeg

    Simetrik Şifremele (Symmetric Encryption) konusuna burada değinmiştik. Bugün ise konunun devamı niteliğinde asimetrik şifreleme algoritmaları ve örnek bir blockchain kurgusu üzerindeki kullanım noktaları ve amaçlarını ortaya koymaya çalışacağız. …


  3. Unspent Transaction Output UTXO

    https://cdn-images-1.medium.com/max/150/1*xFpHRPhxSWbQZoLTxRk8og.png


  4. Blockchain Evrimi ve Blockchain 3.0

    https://cdn-images-1.medium.com/max/150/1*ITEGfqVQIwkwrYALodhjIA.jpeg

    Aslında bu konu Web 1.0’a kadar dayanıyor. Kullanıcıların statik web sitelerinden ihtiyacı olan bilgileri alıp gittiği, kullanıcı etkileşiminin hiç olmadığı zamanlardan şu anda Web 3.0 ile kullanıcıya özel deneyimin ve etkileşimin sağlandığı dönemdeyiz. Nasıl mı, bir alışveriş sitesinde bir ürünü incelediğinizde 1 hafta boyunca bütün sitelerde o ürünün reklamlarını görüyorsanız siz de o kervanın bir yolcusu oldunuz demektir. …


  5. Bitcoin, Blockchain, Distributed Ledger Technology

    https://cdn-images-1.medium.com/max/150/1*JBV7VVSxXvoZ97b0-FAMFA.png

    Bitcoin uzun sayılabilecek bir süredir hayatımızda. Ancak son birkaç aydır yaşanan gelişmelerle birlikte artık sokakta yürürken 7den 70e birçok kişiden duyabileceğimiz bir konu haline geldi. O kadar ki duyduğumuz bazı hikayeler şehir efsanelerine varacak seviyelere ulaştı. …


  6. DMA Direct Access Memory Nedir

    DMA( Direct Access Memory), bellek ile diğer aygıtlar arasındaki veri iletişimi için kullanılan bir yapıdır. Avantajı, bu veri iletişimini sağlarken merkezi işlem birimini kısmen devre dışı bırakarak veri akışını hızlandırmak ve merkezi işlem birimini daha az meşgul etmektir. Böylece merkezi işlem birimi veri akışında temel unsur olmaktan çıkıp diğer süreçlere fırsat tanıyabilecek, öbür taraftan veri akışı da daha kısa bir yol dolaşmış olacağından dolayı hızlanmış olacaktır. …


  7. Eclipse Formatter On Off

    Eclipse’in formatter özelliği developerlar için tartışmasız bir nimet. O kadar ki kodlama yaparken iki satır kod yazdıktan sonraki ilk refleksim CTRL+A CTRL+Shift+F CTRL+S . Yani tüm kodu seç, formatla ve kaydet. Window > Preferences > Java > Code Style > Formatter altında yer alan menüden farklı formatlama profilleri yaratabilirsiniz, güncelleyebilirsiniz. Formatter her ne kadar kullanışlı bir araç olsa da kimi zaman kodumuzun bazı parçalarının formatlanMAmasını isteriz. Özellikle de DAO’lar içerisinde yer alan SQL stringleri formatlandığında SQL’in kendi formatına değil, Eclipse’in diğer kodlarımız için oluşturduğu her satır için atanan karakter adedine göre formatladığı için SQL’i okumak söz konusu olduğunda çileden çıkaran bir durumla karşılaşabiliyoruz. En basitinden bir örnek verelim; …


  8. JVM Memory Usage OutOfMemoryError

    Önce bazı temel bilgiler :) Java programlarını çalıştırırken JVM kendisine belirli bir miktar bellek alokasyonu yapar. Bir java programını çalıştırırken JVM’e …


  9. Java Daemon Thread

    Bir java uygulamanın sonlanması için main thread’in sonlanması ve başka hiçbir aktif user thread’in olmaması gerekir. Bu sonlanmayı main thread sonlandırıldığında aktifleşen DestroyJavaVM isimli thread yönetir. DestroyJavaVM uygulamayı sonlandırmak için user threadlerinin sonlanmasını bekler. Threadler sonlanır sonlanmaz uygulama JVM’de sonlandırılır. Ancak uygulamanın başlattığı aktif threadler bulunuyorsa uygulama sonlanamayacaktır. DestroyJavaVM thread’inin göz ardı ettiği bazı threadler vardır ki bu threadler uygulamanın sağlıklı bir şekilde çalışmasından sorumlu sistem threadleridir. Örneğin Finalizer isimli thread finalize metodu çalıştırılacak objeleri alır ve bu çağırımları gerçekleştirir. Başka bir örnek, Signal Dispatcher thread’i JVM ile OS arasındaki native çağırımlardan sorumlu sistem threadidir. Bir thread’i daemon olarak tanımladığımız zaman uygulamanın sonlanması için engel oluşturmayan bir thread oluşturduğumuzu ifade ederiz. Bu thread’imiz çalışan başka hiçbir thread kalmadığında işini henüz tamamlamamış olsa dahi uygulamamız sonlanacaktır. Bu tarz threadleri genellikle yarattığımız diğer threadleri kontrol eden kod parçalarını çalıştırmak için kullanırız. Örneğin sistemdeki aktif olan threadleri dinleyen bir izleme thread’i gibi. KOD; İki adet thread sınıfından extend olmuş sınıfımız var. Birisi(DaemonThread sınıfı) while ile sonsuz döngüde 3er saniyelik aralıklarla ekrana çıktı veriyor. Bu thread dışarıdan bir müdahale olmadığı sürece sonsuza kadar çalışacak bir thread. …


  10. Eclipse Conditional Breakpoint

    Genelde kodda değişiklik yaparak çözme yoluna gittiğimiz ama aslında hazır bir özellikle işin içinden kolayca çıkabileceğimiz bir özelliği paylaşmak istiyorum. Örneğin bir kodunuz var. Kodun içerisindeki bir değişken, istediğiniz spesifik bir değere eşit olduğunda debug etmek istiyorsunuz. Aşağıda 13. satırdaki System.out.println metoduna bir breakpoint koymak istiyorum ama sadece i değeri 59 olduğu zaman işlemlerimi gözlemlemek istiyorum. Kodumuzu …