<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>blogs on Emin Fedar | Kişisel Blog</title><link>https://eminfedar.github.io/blog/</link><description>Recent content in blogs on Emin Fedar | Kişisel Blog</description><language>tr-tr</language><lastBuildDate>Thu, 09 Dec 2021 13:00:03 +0000</lastBuildDate><atom:link href="https://eminfedar.github.io/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Rust Sıfırdan async/.await | join!, select!, task::spawn, tcp-server, async-std</title><link>https://eminfedar.github.io/blog/rust/rust-async-join-select-task-spawn-tcp-server/</link><category>rust</category><category>async</category><category>async_std</category><pubDate>Thu, 09 Dec 2021 13:00:03 +0000</pubDate><guid>https://eminfedar.github.io/blog/rust/rust-async-join-select-task-spawn-tcp-server/</guid><description>Bu derste Rust dili üzerinde async/.await kullanarak asenkron programlar nasıl yazarız, async_std&amp;rsquo;yi nasıl kullanırız, future&amp;rsquo;lar nelerdir, join!, select!, task::spawn örnekleri ve asenkron mimari nasıl çalışırı ele aldık.
İyi seyirler!</description></item><item><title>Rust Multithreaded Geliştirme</title><link>https://eminfedar.github.io/blog/rust/rust-multithreaded-channels-atomic-mutex/</link><category>rust</category><category>multithread</category><category>atomic</category><category>mutex</category><category>channels</category><pubDate>Fri, 12 Nov 2021 13:00:03 +0000</pubDate><guid>https://eminfedar.github.io/blog/rust/rust-multithreaded-channels-atomic-mutex/</guid><description>Bu derste Rust dili üzerinde Atomic, Mutex ve Channel kullanarak birden fazla threadi nasıl senkronize olarak çalıştırabiliriz ele aldık.
İyi Seyirler.</description></item><item><title>C++'ta Multithreaded Geliştirme</title><link>https://eminfedar.github.io/blog/cpp/cpp-multithreaded-atomic-mutex/</link><category>c++</category><category>multithread</category><category>atomic</category><category>mutex</category><pubDate>Fri, 12 Nov 2021 12:00:03 +0000</pubDate><guid>https://eminfedar.github.io/blog/cpp/cpp-multithreaded-atomic-mutex/</guid><description>Bu derste C++ dili üzerinde Atomic ve Mutex kullanarak birden fazla threadi nasıl senkronize olarak çalıştırabiliriz ele aldık.
İyi seyirler.</description></item><item><title>Multithreaded Uygulama Nasıl Geliştirilir?</title><link>https://eminfedar.github.io/blog/multithreaded-uygulama-gelistirme/</link><category>multithread</category><pubDate>Fri, 12 Nov 2021 11:00:00 +0000</pubDate><guid>https://eminfedar.github.io/blog/multithreaded-uygulama-gelistirme/</guid><description>Aşağıdaki videoda programımızı çok çekirdeği aynı anda kullanabilecek şekilde nasıl yazabiliriz konusunu ele aldık.
İyi seyirler.</description></item><item><title>Sıfırdan İşlemci | 4.1) Execute (Çalıştır) - ALU</title><link>https://eminfedar.github.io/blog/riscv/4-1-execute-alu/</link><category>islemci-tasarimi</category><category>risc-v</category><pubDate>Fri, 20 Nov 2020 23:00:00 +0000</pubDate><guid>https://eminfedar.github.io/blog/riscv/4-1-execute-alu/</guid><description>Bir sonraki ders: Sıfırdan İşlemci | 4.2) Execute (Çalıştır)</description></item><item><title>Sıfırdan İşlemci | 3) Registers (Kaydediciler)</title><link>https://eminfedar.github.io/blog/riscv/3-register/</link><category>islemci-tasarimi</category><category>risc-v</category><pubDate>Fri, 13 Nov 2020 23:00:00 +0000</pubDate><guid>https://eminfedar.github.io/blog/riscv/3-register/</guid><description>Bir sonraki ders: Sıfırdan İşlemci | 4) Execute (Çalıştır) - ALU</description></item><item><title>Sıfırdan İşlemci | 2.2) Decode (Çöz)</title><link>https://eminfedar.github.io/blog/riscv/2-2-decode/</link><category>islemci-tasarimi</category><category>risc-v</category><pubDate>Fri, 06 Nov 2020 23:00:00 +0000</pubDate><guid>https://eminfedar.github.io/blog/riscv/2-2-decode/</guid><description>Bir sonraki ders: Sıfırdan İşlemci | 3) Registers (Kaydediciler)</description></item><item><title>Sıfırdan İşlemci | 2.1) Decode (Çöz)</title><link>https://eminfedar.github.io/blog/riscv/2-1-decode/</link><category>islemci-tasarimi</category><category>risc-v</category><pubDate>Fri, 30 Oct 2020 23:00:00 +0000</pubDate><guid>https://eminfedar.github.io/blog/riscv/2-1-decode/</guid><description>Bir sonraki ders: Sıfırdan İşlemci | 2.2) Decode (Çöz)</description></item><item><title>Sıfırdan İşlemci | 1) Fetch (Getir)</title><link>https://eminfedar.github.io/blog/riscv/1-fetch/</link><category>islemci-tasarimi</category><category>risc-v</category><pubDate>Tue, 20 Oct 2020 23:00:00 +0000</pubDate><guid>https://eminfedar.github.io/blog/riscv/1-fetch/</guid><description>Bir sonraki ders: Sıfırdan İşlemci | 2.1) Decode (Çöz)</description></item><item><title>Sıfırdan İşlemci | 0) İşlemci mimarisi ve RISC-V</title><link>https://eminfedar.github.io/blog/riscv/0-riscv-mimarisi/</link><category>islemci-tasarimi</category><category>risc-v</category><pubDate>Mon, 19 Oct 2020 23:00:00 +0000</pubDate><guid>https://eminfedar.github.io/blog/riscv/0-riscv-mimarisi/</guid><description>Merhabalar, bu seride birlikte RISC-V Komut Setini işleyebilen Tek çekirdekli, Tek çevrimli ve 32 Bit bir işlemci tasarlayacağız.
Daha sonra da bu işlemcimizi Pipelined hale getirip performansını arttıracağız.
Seriye başlamadan önce gereksinimler Mantık Devreleri bilgisi İkili (Binary) sistemler ve aritmetiği Basit elektrik bilgisi (kabloları birbirine bağlama :)) Yanmaya hazır bir beyin 🤯 Hazırsanız başlayalım!
İşlemci nasıl çalışır? Bir bilgisayar temel olarak iki birimden oluşur: İşlemci ve RAM(Bellek)
RAM işlemcinin yazıp okuyabildiği bir bellektir.</description></item><item><title>RISC-V Nedir?</title><link>https://eminfedar.github.io/blog/riscv/riscv-nedir/</link><category>risc-v</category><pubDate>Sat, 10 Oct 2020 22:00:00 +0000</pubDate><guid>https://eminfedar.github.io/blog/riscv/riscv-nedir/</guid><description>Merhabalar, bu yazıda RISC-V(risk fayf)&amp;lsquo;ı ele alacağız.
Ama RISC-V&amp;rsquo;tan bahsetmeden önce &amp;ldquo;RISC ne ola ki 5. sürümü çıkmış&amp;rdquo; bir onu açıklığa kavuşturalım:
RISC nedir? RISC, Reduced Instruction Set Computer, yani İndirgenmiş Komut Seti Bilgisayarı bir işlemci mimari çeşididir.
Bir başka işlemci mimari çeşidi ise CISC, Complex Instruction Set Computer yani Karmaşık Komut Seti Bilgisayarı diye.
Bunlar arasındaki farkı kısaca ele alırsak:
CISC işlemciler bir komut gerçekleştirmek için birden fazla clock cycle kullanabilir.</description></item><item><title>Plymouth Tema Oluşturma Rehberi</title><link>https://eminfedar.github.io/blog/linux/plymouth-rehberi/</link><category>linux</category><category>plymouth</category><pubDate>Wed, 12 Aug 2020 22:00:00 +0000</pubDate><guid>https://eminfedar.github.io/blog/linux/plymouth-rehberi/</guid><description>Merhabalar, bu yazıda Pardus gibi GNU/Linux sistemlerde sistem boot olurken karşınıza çıkan ekranı tasarlayacağız.
1. Kurulum: Plymouth&amp;rsquo;u bilgisayarınız açıkken test edebilmek için aşağıdaki paketi sisteminize kurun: (debian)
sudo apt-get install plymouth-x11 Tema klasörü örneği: Temalar /usr/share/plymouth/themes/ dizininde bulunur.
Basit bir tema aşağıdaki dosyalardan oluşur:
tema/ ├── tema.plymouth ├── tema.script tema.plymouth dosyası Plymouth&amp;rsquo;un tema hakkında bilgi edindiği dosyadır.
Örnek bir .plymouth dosyası:
[Plymouth Theme] Name=Ornek bir Plymouth Temasi Description=Bu temada sunlar sunlar vardir.</description></item><item><title>C++11: std::move</title><link>https://eminfedar.github.io/blog/cpp/c++11/c++11-move/</link><category>c++11</category><category>c++</category><pubDate>Wed, 08 Jul 2020 12:00:03 +0000</pubDate><guid>https://eminfedar.github.io/blog/cpp/c++11/c++11-move/</guid><description>Merhabalar, bu yazıda C++11 sürümünde dile eklenmiş std::move keywordünü inceleyeceğiz.
Nasıl kullanılır? std::string a = &amp;#34;selam&amp;#34;; std::string b = &amp;#34;merhaba&amp;#34;; // a = &amp;#34;selam&amp;#34; // b = &amp;#34;merhaba&amp;#34; b = a; // a = &amp;#34;selam&amp;#34; // b = &amp;#34;selam&amp;#34; b = std::move(a); // a = &amp;#34;&amp;#34; // b = &amp;#34;selam&amp;#34; Ne işe yarar? Bir nesneyi taşıyarak başka bir değişkene aktarmaktadır. Normal eşitlemeden farkı ise, nesnenin taşınmasıyla eski değişkene artık ihtiyaç duyulmayan durumlarda kullanılır.</description></item><item><title>C++11: constexpr</title><link>https://eminfedar.github.io/blog/cpp/c++11/c++11-constexpr/</link><category>c++11</category><category>c++</category><pubDate>Thu, 14 May 2020 00:06:03 +0000</pubDate><guid>https://eminfedar.github.io/blog/cpp/c++11/c++11-constexpr/</guid><description>Merhabalar, bu yazıda C++11 sürümünde dile eklenmiş constexpr terimini inceleyeceğiz.
Nedir? constexpr derleme esnasında(compile-time) sonucu belli olan, sabit değer döndüren bir fonksiyon, hatta ifadelerin tanımlanması için kullanılır.
&amp;ldquo;İyi de bunu zaten makrolar yapıyor?&amp;rdquo; diyebilirsiniz. Örneğin #define UZUNLUK 10 gibi. (bu da derleme esnasında bilinen sabit bir değer?)
Veya sabit bir değişkene ihtiyacımız varsa zaten const ile tanımlayabiliyoruz. Örneğin const int UZUNLUK = 10; gibi.
constexpr ise derleme esnasında yapılacak işlemi basit makro kopyala-yapıştırı ve sabit değişken tanımlayabilmenin de ötesine çıkarıp, bu ikisinin birleşerek daha kapsamlı ve dilin kendisine ait bir işlevi olmuş halidir diyebiliriz.</description></item><item><title>C++11: enum class</title><link>https://eminfedar.github.io/blog/cpp/c++11/c++11-enum-class/</link><category>c++11</category><category>c++</category><pubDate>Mon, 16 Mar 2020 12:00:03 +0000</pubDate><guid>https://eminfedar.github.io/blog/cpp/c++11/c++11-enum-class/</guid><description>Merhabalar, bu yazıda C++11 sürümünde dile eklenmiş enum class&amp;lsquo;ı inceleyeceğiz.
Nasıl kullanılır? enum class Araba { TOGG, Tesla, Faraday }; Araba::TOGG; Araba::Tesla; Not: enum + class kelimelerinin birleşmesi değildir, &amp;ldquo;enum class&amp;rdquo; kendi bir keyworddür.
Ne işe yarar? enum class ile enum aynı amaçla yani sabit tanımlı değerler (örneğin haftanın günleri, yıldaki aylar, yazı yaslama seçenekleri (LEFT, CENTER, RIGHT gibi)) oluşturmak için kullanılır.
enum class&amp;lsquo;ın ise normal enum&amp;lsquo;dan farkı var:
enum class&amp;rsquo;lar int, başka bir enum veya başka bir enum class&amp;lsquo;a dönüştürülemezler.</description></item><item><title>C++11: Lambda</title><link>https://eminfedar.github.io/blog/cpp/c++11/c++11-lambda-fonksiyonlar/</link><category>c++11</category><category>c++</category><pubDate>Wed, 11 Mar 2020 00:00:00 +0000</pubDate><guid>https://eminfedar.github.io/blog/cpp/c++11/c++11-lambda-fonksiyonlar/</guid><description>Merhabalar, bu yazıda C++11 sürümünde dile eklenmiş Lambda Fonksiyonları inceleyeceğiz.
Nasıl kullanılır? // Tanım: [&amp;amp;, =, Ek scope değişkenleri] (fonksiyonun parametreleri...) { // Kodlar... } &amp;amp; : Üst scope&amp;rsquo;taki değişkenlerin bizzat kendilerini al. = : Üst scope&amp;rsquo;taki değişkenlerin sadece değerlerini al. &amp;amp; kullanımına örnek:
int a = 5; auto fonksiyon = [&amp;amp;]() { a = 10; std::cout &amp;lt;&amp;lt; a; // 10 }; fonksiyon(); = kullanına örnek:
int a = 5; auto fonksiyon = [=]() { // a = 10; ERROR: expression must be a modifiable lvalue std::cout &amp;lt;&amp;lt; a; // Değerini kullanabiliriz.</description></item><item><title>C++11: auto</title><link>https://eminfedar.github.io/blog/cpp/c++11/c++11-auto/</link><category>c++11</category><category>c++</category><pubDate>Tue, 10 Mar 2020 12:00:03 +0000</pubDate><guid>https://eminfedar.github.io/blog/cpp/c++11/c++11-auto/</guid><description>Merhabalar, bu yazıda C++11 sürümünde dile eklenmiş auto keywordünü inceleyeceğiz.
Nasıl kullanılır? auto a = 10; auto a = &amp;#34;Selam&amp;#34;; auto a = new Araba(&amp;#34;TOGG&amp;#34;); Ne işe yarar? 1. Değişken tipinin derleyici tarafından otomatik tanımlanmasını sağlar: int a = 5; auto b = a; typeid(a) == typeid(b); // true 2. Uzun tip tanımlamalarından kurtarır: class UzunBirSinifAdi {}; // Açık tanım: UzunBirSinifAdi* nesne2 = new UzunBirSinifAdi; // Auto: auto nesne = new UzunBirSinifAdi; typeid(nesne) == typeid(nesne2); // true 3.</description></item><item><title>0 → RAM | 6) Ve RAM!</title><link>https://eminfedar.github.io/blog/ram/6-ve-ram/</link><category>ram</category><pubDate>Sat, 07 Mar 2020 12:00:03 +0000</pubDate><guid>https://eminfedar.github.io/blog/ram/6-ve-ram/</guid><description>Merhabalar! Bu yazımızda RAM’imizi tasarlamayı bitiriyoruz.
Az kalorili ve rastgele erişteli belleğimiz yemeye hazır efendim.
RAM’imizin içini adım adım tasarlayalım: Adres girişlerinden aldığımız sayıyı 4. Yazıda ele aldığımız Kod Çözücüleri kullanarak iki boyutlu Ram Hücreleri matrisi hazırlayalım.
Bu matrisin içine hücrelerimizi yerleştirip hücrenin “EN”(aktif etme) ucunu iki kod çözücüden gelen seçim uçlarına “VE” kapısı ile bağlayacağız. (Mesela 0. satır ve 4. sütun seçim uçları aktif ise (0, 4)&amp;rsquo;teki hücreyi aktif et)</description></item><item><title>0 → RAM | 5) RAM Hücresi</title><link>https://eminfedar.github.io/blog/ram/5-ram-hucresi/</link><category>ram</category><pubDate>Fri, 06 Mar 2020 11:00:03 +0000</pubDate><guid>https://eminfedar.github.io/blog/ram/5-ram-hucresi/</guid><description>Merhabalar! Bu yazımızda RAM’imizin iç devresini tasarlamaya başlayacağız. Atacağım devre dosyaları Logisim programından olacak. Tamamen sıfırdan kendi RAM’inizi inşa edip, simüle edip test edebileceksiniz :)
RAM’imiz nasıl bir şey olacak? RAM’imizin iç devresini tasarlamadan önce içi hazır bir eleman olarak düşünüp sadece giriş ve çıkışlarını tasarlayalım. Yani genel hatlarını belli edelim.
RAM’imiz 2⁸x8 boyutlarında olacak. Buradaki ilk değer RAM’in içindeki hücre sayısıdır. Yani 2⁸ tane çekmeceden oluşan bir dolap gibi düşünülebilir.</description></item><item><title>0 → RAM | 4) Kod Çözücüler</title><link>https://eminfedar.github.io/blog/ram/4-kod-cozuculer/</link><category>RAM</category><pubDate>Thu, 05 Mar 2020 10:57:03 +0000</pubDate><guid>https://eminfedar.github.io/blog/ram/4-kod-cozuculer/</guid><description>Merhabalar! Bu yazımızda RAM’imizin içindeki belirli adreslere erişmek için devremizde kullanacağımız Kod Çözücüleri ve Kodlayıcıları ele alacağız.
Kod Çözücüler ne işe yarar? Bir Kod Çözücü kısaca: seçim elemanıdır.
Girişlerine ikilik tabanda verilen girdiye göre sadece bir çıkışını aktif eder. Örneğin 2 girişli ve 4 çıkışlı (2x4) bir Kod Çözücü aşağıdaki gibi çalışır:
00 -&amp;gt; 0
01 -&amp;gt; 1
10 -&amp;gt; 2
11 -&amp;gt; 3
2 Giriş, 4 Çıkışlı bir kod çözücünün çalışma şekli.</description></item><item><title>0 → RAM | 3) Karnaugh Haritaları</title><link>https://eminfedar.github.io/blog/ram/3-karnaugh-haritalari/</link><category>ram</category><pubDate>Wed, 04 Mar 2020 09:00:03 +0000</pubDate><guid>https://eminfedar.github.io/blog/ram/3-karnaugh-haritalari/</guid><description>Merhabalar! Önceki derste Mantık Kapılarına ve Doğruluk Tablolarına giriş yapmıştık. Doğruluk Tabloları güzeldi fakat bir eksiği vardı ki; kapı sayısı arttıkça Doğruluk Tablolarının çekilemez uzunluklara ulaşması ve sadeleştirme işlemlerinin biraz daha zor görülmesiydi.
İşte bu sıkıntıları çekmemek için Maurice Karnaugh ve Edward Veitch’in güzel bir çalışması olan Karnaugh (Karnaugh-Veitch) Haritalarını kullanacağız.
Karnaugh Haritaları (Karnaugh-Veitch Maps) Karnaugh Haritaları basitçe doğruluk tablosunun aşağıya doğru uzayan hali yerine iki boyutlu bir tablo haline getirilmesinden ibaret.</description></item><item><title>0 → RAM | 2) Mantık Kapıları</title><link>https://eminfedar.github.io/blog/ram/2-mantik-kapilari/</link><category>ram</category><pubDate>Tue, 03 Mar 2020 19:00:00 +0000</pubDate><guid>https://eminfedar.github.io/blog/ram/2-mantik-kapilari/</guid><description>Merhabalar! Bu derste mantıksal elektronik devreleri kurmak için olmazsa olmazımız olan Mantık Kapılarına göz atacağız.
Mantığın kapısı mı olur? Mantık ilmi, bizim günlük hayatta karar verirken beynimiz ile yaptığımız işlemleri matematiğe uyarlayan bir ilim. Bu ilim pek çok devasa ilim dalının temellerini oluşturuyor.
Bugün bilgisayarda yaptığımız işlerin büyük çoğunluğu mantıksal çıkarımlar sayesinde olmakta.
Mesela bu yazıyı beğenmek için beğen butonuna tıklamak. Bilgisayar sizin başka bir yere değil de özel olarak o butona tıkladığınızı nasıl anlar ki?</description></item><item><title>0 → RAM | 1) RAM Nedir?</title><link>https://eminfedar.github.io/blog/ram/1-ram-nedir/</link><category>ram</category><pubDate>Mon, 02 Mar 2020 19:00:00 +0000</pubDate><guid>https://eminfedar.github.io/blog/ram/1-ram-nedir/</guid><description>Merhabalar! (0 → RAM)* *serisinde sizlerle beraber sıfırdan kendi RAM’imizi tasarlayacağız. Bu yazıda tasarıma hemen geçmesek de genel bir bilgi edinmek için okumanız faydalı olacaktır. Başarılar!
Ram Nedir? Random Access Memory, yani Rastgele Erişimli Bellek.
“Rastgele Erişimli” denilmesinin sebebi bellekteki hafıza bölümlerine “kaotik” veya “neresi rast gelirse” şeklinde erişmemiz değil.
İstediğimiz (yani herhangi bir, yani rastgele), hafıza bölümüne tek seferde erişebildiğimiz için böyle tesmiye edilmiş.
Bellekteki bir adrese erişim türü farkları [ Rastgele | Sıralı ]</description></item><item><title>Bismillah</title><link>https://eminfedar.github.io/blog/bismillah/</link><pubDate>Sun, 01 Mar 2020 12:00:00 +0000</pubDate><guid>https://eminfedar.github.io/blog/bismillah/</guid><description>Bismillâh her hayrın başıdır. Biz dahi başta ona başlarız.
Bil ey nefsim!
Şu mübârek kelime İslâm nişanı olduğu gibi, bütün mevcudâtın lisân-ı haliyle vird-i zebânıdır.
Birinci Söz, Sözler, Risale-i Nur</description></item><item><title>Ben kimim?</title><link>https://eminfedar.github.io/blog/about/about/</link><category>blog</category><pubDate>Fri, 01 Mar 2019 22:00:00 +0000</pubDate><guid>https://eminfedar.github.io/blog/about/about/</guid><description>Normal bir insanım.</description></item></channel></rss>