10 Eylül 2021 Cuma

Sushi Yapma ve Yeme Algoritması

Hadi en sevdiğim yemeği nasıl yapabiliriz, yaptık diyelim nasıl yiyebiliriz algoritmasını çıkartalım :) 











Yapması da yemesi de emek isteyen zor bir atıştırmalık. Halk arasında çiğ balık olarak da isimlendirilen sushiiii :)

Yemesi ayrı emek, yapması ayrı emek. Bu sebepten 2 farklı algoritma olarak yazdım.

Sushi Yapma Algoritması
























Sushi nasıl yapılır görmek için tıklayınız



Sushi Yeme Algoritması :) 








19 Mayıs 2021 Çarşamba

Vue.js Nedir?


 Neden Vue.js kullanalım ki?

HTML+CSS kullanarak web projeleri hazırlıyoruz. JS ekleyerek daha kullanıcı etkileşimli web sayfaları yapmaya başladık. Sonrasında backend tarafındaki server side kodları browser üzerinden çalıştırabilir miyim ? Bu sorunun cevabı backend tarafında yazmış olduğumuz kodları javascript tarafına taşıyarak çözdük fakat sonrasında her yer .js uzantılı dosyalar barındırmaya başladı. Durum böyle olunca projedeki hatalarda çözüm üretmek ve kodları debuglamak aşırı zaman almaya başladı ve böylece hayatımıza modern javascript frameworkleri girdi. Vue.js moden javascript frameworklerinden sadece bir tanesidir. Diğerler nelerdir diye aklınıza geliyorsa hemen onun da cevabını vereyim. 















Vue.js için aşağıdakileri söylemek mümkündür. 

  • Kullanımı kolay
  • Öğrenimi kolay
  • Performanslı (React ve Angular'a göre)
  • Core framework'ü kullanabilir ya da pluginlerle customize hale getirebiliriz.
  • Test senaryoları yazıp testini yapma imkanı sağlar.


Component yapısı yardımıyla tekrar tekrar kullanılabilen reusable yapılar oluşturmamıza da imkan sağlamaktadır. 
















Yukarıdaki görsele bakacak olursak eğer web sitemizde kullandığımız bölümler bulunmaktadır. Biz bu yapıyı bir kez kodlarız ve ardından component yardımıyla istediğimiz başka sayfalarda da kolaylıkla daha önceden geliştirmiş olduğumuz component'i direkt çağırıp kullanabiliriz. Bu durum diğer modern .js frameworklerinde de bulunmaktadır. (Angular, React vb.) Component yapısı sayesinde tekrardan kodlama yapmayız. 


Component oluştururken içerisinde HTML+CSS+JS yapılarını kullanırız. Component yapılarını minik uygulamalar olarak düşünebiliriz.

İşte modern frameworkler bizlerin bu componentleri birleştirip büyük resme bakmasını sağlamaktadır :) 


Online editor kullanarak vue.js tarafında ilk uygulamamızı birlikte geliştirelim. Online editor olarak ben fiddle kullanıyorum Fiddle'a gitmek için tıklayınız . Browser üzerinde yazıp anlık olarak sonuçlarımızı görebileceğiz. 

Fiddle tarafına geçtiğimizde aşağıdaki gibi bir arayüz karşımıza çıkacak olup dört farklı bölümden oluşmaktadır. 











Vue.js sitesinde yer alan get started bölümüne tıkladığımızda iki farklı halini görebiliriz. Bunlar development ve product.  Development modunu kullanırsak bize console tarafında bazı uyarı mesajlarını da gösterebiliyor olacak. Bu yüzden development modunu alıp html sayfamıza ekleyelim. 


html bölümüne aşağıdaki kodumuzu ekleyip sayfamızda vue.js kullanacağımızı belirtiyoruz. (development olanı aldım)

<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>


HTML sayfamıza id'si container olan içerisinde bir p barındıran kodlarımız ekliyorum. P etiketi içerisinde birşey yazmasın.


HTML bölümünün son hali aşağıdaki gibi olsun.

<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>

<div id="container">

<p></p>  

</div>


Şimdi vue kodlarımızı yazarak container div'i içerisinde bulunan p etiketine istediğimiz bir bilginin yazdırılması kısmına geçelim.

Bu aşamada new Vue diyerek bir component oluşmasını sağlıyoruz. el tanımlaması element anlamına gelir ve id bilgisi container olan element içerisine geçip oradaki yapının içerisine title bilgisini tanımlamasını istiyoruz.

new Vue({

el:"#container",                         data:{                                    yenideger:"Merhaba dünya Vue.js'e hoşgeldim :) " } });


Ve kodumuzu çalıştırıp çıktımıza bakıyoruz. Bu şekilde bırakırsak çalıştığında herhangi bir göremeyeceğiz. Bunun için html tarafına dönüp kodumuzu aşağıdaki haline getirmemiz gerekecektir.


 <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script> <div id="container"> <p> {{yenideger}} </p> </div>


Böylece vue tarafında yazarken vermiş olduğumuz değer yenideger isimli yapının içerisinde tutulmaktadır ve biz de html tarafında bu ismi ilgili etiketin içerisine yazarak görünmesini sağlayabiliriz.

id bilgisi container olan div içerisinde başka elementlerimiz olmuş olsa onların da değerlerini değiştiriyor olacaktı.

Son halleri aşağıdaki gibidir.

HTML:

<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script> <div id="container"> <p> {{yenideger}} </p> <h1>{{yenideger}}</h1> <h2>{{yenideger}}</h2> </div>


JS:

new Vue({

el:"#container",

data:{

yenideger:"Merhaba dünya Vue.js'e hoşgeldim :) "

}

});


Çıktı











Bir sonraki makalemde görüşürüz iyi çalışmalar :) 




30 Nisan 2021 Cuma

Redis Nedir?

 Redis kelime anlamı nedir diyerek başlayalım :) 




Redis açılımı Remote Dictionary Server olarak karşımıza çıkmaktadır. Open source olup C programlama dili kullanılarak geliştirilmiş NoSQL veri tabanıdır. Redis yapısı inmemory olarak çalışır yani veriyi belleğe (RAM'e) yazar.
 Redis'in hem inmemory olması hem de NoSQL yapısını barındırıyor olması hız kazanmasını sağlar.

Redis alt yapısını incelediğimizde ağırlıklı olarak string tipi ile çalıştığını görebiliriz ayrıca dictionary’ ler ile çalışır. Çalışırken kullanabileceğimiz diğer liste türleri ise : List, Sets, Sorted Sets ve Hashed Sets gibi string listelerdir.

Resmi olarak Linux sunucularda çalışan Redis, istenirse windows sunucularda da çalışabilir. Ayrıca Azure desteği de bulunmaktadır.

Redis; Instagram, Twitter, Pinterest, Tumblr vb. gibi popüler firmalar tarafından kullanılmaktadır.

Neden Redis Kullanmalıyız? 

Hızlı ve performanslı uygulamalar geliştirmek istersek tercih ederiz.

Caching (Ön Belekleme) 

Sorgularımızın ilk çağırıldığı zaman çalışması diğer durumlarda önbellekten getirilmesi işlemi hız ve performans açısından sıkça duyduğumuz bir yapıdır. Ön belleklemenin amacı, arka plandaki uygulamanın veya veri tabanının yükünü hafifletip, verilere en hızlı ve masrafsız biçimde ulaşmaktır. Redis tam olarak bu işlemi sağlamaya aracı olmaktadır.

Session Store

Redis, oturum açma bilgileri, kullanıcı profilleri gibi birçok veriyi mili saniye hızında okuma görevi görmektedir. Uygulamalarımızda oturum bilgilerini ya da diğer verilerimizi tutmak için sessionları kullanabiliriz ya da Redis'ten yararlanabiliriz. Redis ile kullanıcı profilleri, kimlik bilgileri, kullanıcıya özgü veriler vb. gibi verileri mili saniyelere varan hızlarda okuyabiliriz.


Pub/Sub

Pub/Sub mesajlaşma özelliği nedeniyle Redis 2.0 sürümünden itibaren birçok firma tarafından tercih edilmeye başlanmıştır. Mesajlaşma uygulamalarında sıkça karşımıza çıkan RabbitMQ yerine Redis'i sadeliğinden ve performansından dolayı tercih edilmektedir. 


Queues

Uygulama veya projelerinizde aynı anda birçok işlem yapmanız gerektiğinde diğer işlemleri kuyruğa ekleyip backkground'da çalışmasını devam etmesini isteriz. Örneğin yazıcıda arka arkaya gönderdiğimiz çıktıların sırayla çıkması işlemi de bu yapıya benzemektedir. Redis bu tarz iş kuyruklarındaki verilere hızla ulaşmanızı sağlamaktadır.

Bir sonraki makalemde Redis kurup uygulamada geliştiriyor olacağız, takipte kalın bilgili kalın.


5 Ocak 2021 Salı

C# Programlama Dilinde Sayıyı Yuvarlamadan Virgülden Sonra 2 Haneyi Getiren Kod

 Merhaba arkadaşlar, bugün yine 10 dkda algoritmasını çıkarttığım 3 dkda kodunu yazdığım bir minik örnekle karşınızdayım. Öncelikle soruyu açıklayayım.

Double bir sayımız var. Bu sayının virgülden sonraki 2 hanesini almak istiyoruz ama burada herhangi bir yuvarlama işlemi yapmadan bu sayıları almak istiyoruz. Math.Round ile yuvarlama yaparsak mevcut fiyat değişmekte bizim amacımız 113.699 değerini , 113.69 şeklinde elde etmek. 

Kodlar aşağıdaki gibi keyifli kodlamalar...

SQL Çalışma Sorularının Çözümü

 -Ürünler tablosundaki ürünlerden Rengi siyah,silver ya da multi renkte olanları fiyat bilgisine göre büyükten küçüğe getirilip gösterilecek...