<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Yusuf CANBAZ on Medium]]></title>
        <description><![CDATA[Stories by Yusuf CANBAZ on Medium]]></description>
        <link>https://medium.com/@canbax?source=rss-5812122afdba------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*wXFKdslnMq8v1_ZX_ww1_g.jpeg</url>
            <title>Stories by Yusuf CANBAZ on Medium</title>
            <link>https://medium.com/@canbax?source=rss-5812122afdba------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Thu, 16 Jul 2026 15:47:31 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@canbax/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Global Namaz Vakti Uygulamamın Doğuş Hikayesi !]]></title>
            <link>https://canbax.medium.com/global-namaz-vakti-uygulamam%C4%B1n-do%C4%9Fu%C5%9F-hikayesi-95eb4c02d00e?source=rss-5812122afdba------2</link>
            <guid isPermaLink="false">https://medium.com/p/95eb4c02d00e</guid>
            <category><![CDATA[emotions]]></category>
            <category><![CDATA[gods-love]]></category>
            <category><![CDATA[global]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[prayer]]></category>
            <dc:creator><![CDATA[Yusuf CANBAZ]]></dc:creator>
            <pubDate>Thu, 21 Aug 2025 09:56:12 GMT</pubDate>
            <atom:updated>2025-11-19T15:27:04.393Z</atom:updated>
            <content:encoded><![CDATA[<h3>Global Namaz Vakti Uygulamamın Doğuş Hikayesi !</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*iPjWtOss12cSVibONxbWPQ.png" /></figure><p>Namaz vakti uygulaması yapmak aslında ilk bakışta gereksiz gibi görünebilir; çünkü piyasada zaten onlarca, belki yüzlerce seçenek var. Ama ben içimden gelen bir dürtüyü susturamadım: “Madem elimden geliyor, neden sade, reklamsız, özgür ve açık kaynak bir uygulama olmasın?” dedim. Bu fikir kısa bir hevesten ibaret olmadı; tam 2–3 yıla yayılan bir yolculuğa dönüştü. Yanıldım, tökezledim, defalarca başa döndüm ama sonunda ortaya bir uygulama çıktı: <a href="https://vaktiapp.com/">vaktiapp.com</a>.</p><p>Şimdi size bu serüvende neler yaşadığımı, hangi zorlukları aştığımı ve nasıl çözümler bulduğumu anlatmak istiyorum.</p><h3>Neden uygulama yapmaya karar verdim?</h3><p>Yıllardır Android mağazasında bulunan, milyonların kullandığı <a href="https://play.google.com/store/apps/details?id=com.simsekburak.android.namazvakitleri">köklü bir namaz vakti uygulamasını</a> ben de bir süre kullandım. Başarılıydı, ama bazı eksikleri vardı: reklamlar, açık kaynak kodlu olmaması, ücret istemesi, koyu tema olmaması …</p><p>Açık kaynak, özgür ve sadece Allah rızası için geliştirilmiş bir çözüm. İşte piyasada bunun olmaması beni en çok şaşırtan şey oldu. Milyarlarca Müslüman var ama bir tane düzgün, ücretsiz, hayrına yapılmış bir uygulama yoktu.</p><p>Ayrıca Şu’ara Suresi 109. ayet ve buna benzer ayetleri okuduktan sonra böyle bir uygulama üzerinden ücret kazanmanın pek doğru olmadığını düşündüm.</p><blockquote>Buna karşılık sizden hiçbir ücret istemiyorum. Benim ücretim yalnızca âlemlerin Rabbine aittir. (Şu’ara Suresi 109. Ayet)</blockquote><p>Ayet, Peygamberlerin dini tebliğ vazifesi karşılığında bir ücret almamalarını, sadece Allah rızasını gözetmeleri gerektiğinden bahsediyor. Ücretsiz namaz vakti uygulaması yapmak ve bu uygulamayı insanlığa sunmak da benim için bir ibadet gibi olduğundan, böyle bir uygulamadan gelir elde etmek içime sinmedi.</p><p>Ayrıca namaz vakti verilerini almak da sanıldığı kadar zor değildi. Biraz denemeyle Diyanet’in sitesine gönderdiğim basit bir HTTP isteğiyle doğru sonuçları alabileceğimi fark ettim. Bu farkındalık bende bir kıvılcım yaktı. Ve o kıvılcım, 2020 yılının Mayıs ayında “artık kolları sıvama zamanı” diyerek başladığım uzun bir yolculuğa dönüştü.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_O4E0xlpUMYN0URJsyBWow.png" /><figcaption>GitHub’daki projenin ilk kodları</figcaption></figure><h3>Vue’2 ile Diyanet’ten verileri çeken ilk websitesi</h3><p>O dönemler Vue hâlâ görece yeni bir kütüphaneydi ve ben de ilk kez Vue’yu deneyip öğrenmek istedim. Vue’nun ikinci versiyonuyla projeyi kısa sürede hayata geçirdim. Üstelik Vuetify’ın materyal tasarım bileşenleriyle modern ve şık bir arayüz ortaya çıkardığımı düşünüyorum. Bu eski projenin kaynak kodları hâlâ ‘vue2-legacy’ isimli kod şubesinde duruyor: <a href="https://github.com/canbax/vaktiapp/commits/legacy-vue2/">https://github.com/canbax/vaktiapp/commits/legacy-vue2/</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*Hhn7t_ISFnqGFFw677dtlQ.png" /><figcaption>İlk namaz vakti uygulamasının İngilizce arayüzü</figcaption></figure><h3>Sistem Çöktü 💥</h3><p>Yaklaşık iki yıl boyunca herşey yolunda gidiyordu; adeta süt limandı. Ta ki bir gün, Diyanet’in sitesine istek gönderdiğimde cevap vermemeye başlayana kadar… İşte o an, yazılımla ilgili çok önemli bir ders aldım: <strong>KİMSEYE BAĞIMLI OLMA!</strong></p><h3>Diyanet Verilerine Erişim Zorluğu</h3><p>Bazı insanlar ve uygulamalar, Diyanet’ten verileri kapalı bir sistem üzerinden alabiliyordu. Ben de onlarla iletişime geçip, “Bu verilere erişim sağlayabilir miyim?” diye sorduğumda genellikle hayır cevabını alıyordum. Aslında bu verilerin ücretsiz ve herkese açık bir API üzerinden sunulmasını beklerdim.</p><h3>🔍 Veri Çekme Denemeleri</h3><p>Bunun üzerine kara kara düşünmeye başladım: Bu verilere nasıl ulaşabilirdim? Diyanet’in websitesini “scrape” ederek — yani websiteden çekerek — verilere erişmeyi denemeye karar verdim.</p><p>Puppeteer ile verileri çekmeyi denedim <a href="https://github.com/canbax/namaz-vakti-api/tree/try-puppeteer">https://github.com/canbax/namaz-vakti-api/tree/try-puppeteer</a> İlk başta her şey yolunda gibiydi, ama kısa süre sonra işler patladı.</p><h3>🚀 Beklenen Mehdi Geldi: Adhan-js</h3><p>Daha sonra <a href="https://github.com/batoulapps/adhan-js">adhan-js</a> projesini keşfettim; GPS koordinatlarından vakitleri hesaplayabiliyordu. Bu harikaydı! Ama Diyanet’in verileriyle karşılaştırınca, özellikle kutuplara yakın bölgelerde yatsı vakti konusunda ciddi farklılıklar gördüm. Bu yüzden adhan-js’i kullanamayacağımı düşündüm.</p><h3>🚨 Diyanet Hesabı Değişti!</h3><p>Ancak sonra öğrendim ki, Diyanet’in hesapları kutuplara yakın konumlar için 2023’ten sonra değiştirilmiş. 🎉 Öyle ki bir günde yatsı vakti, Diyanet’e göre tam 98 dakika kaydı :)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/580/1*OFLZDlL54HPg39w3Qfpjqw.png" /></figure><p>Burada Diyanet’i takdir etmek gerekiyor; vakitlerde birliği sağlamak için hesaplama yöntemini değiştirmiş. <a href="https://diyanet.nl/avrupada-islami-kuruluslar-takvim-birlikteligini-sagladi/">https://diyanet.nl/avrupada-islami-kuruluslar-takvim-birlikteligini-sagladi/</a> Keşke tüm algoritmasını ve sunucularını da adhan-js gibi açık kaynak olarak paylaşsa :(</p><h3>Adhan-js Güven Veriyor 🙌</h3><p>Adhan-js kütüphanesinin her şeyi açık kaynaklı ve son derece detaylı şekilde hesaplaması bana oldukça güven verdi. Namaz vakitlerinin bir konumda doğru şekilde hesaplanabilmesi için o konumun GPS koordinatları ve rakımı gerekiyor. Adhan-js tam olarak bu verileri alıp namaz vakitlerini dakikası dakikasına hesaplıyor. 1–2 dakikalık farkların bile aslında ne kadar önemli ve teknik bir mesele olduğunu fark ettirdi. Bu teknik detayları biraz açmak istiyorum.</p><h4>“İstanbul İçin İftar Vakti” ASLINDA YOKMUŞ!</h4><p>Namaz vakitleri doğrudan coğrafi veriler ile hesaplanır. Ama “İstanbul” dediğimiz şey idari bir sınırdır. Aynı şehir içinde bile bambaşka ufuklar vardır: en doğuda Şile, en batıda Silivri… Aralarında kuş uçuşu 100 kilometreden fazladır. Peki soralım: Bu iki uçta güneş aynı dakikada mı batar? Elbette hayır. Çünkü vakit, posta koduna bakmaz. Bu yüzden dakika dakika namaz vakti hesabı yapılıyorsa eğer her şehirdeki her bir ilçe için namaz vakti ayrı olmalıdır.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*IspKterTklT4L28nnFOj-A.png" /></figure><p>Namaz vakti hesaplamasında temel faktör coğrafi boylamdır. Güneş doğup batarken Şile ve Silivri gibi birbirinden farklı noktalarda birkaç dakikalık farklar olur. Silivri 28.247211, Şile 29.609548 boylamında…</p><p>Yani aynı şehrin iki ucu, iki farklı ufuk demektir. Birinde güneş gökyüzünden bir nebze erken batarken, diğerinde birkaç dakika sonra batar. Bu yüzden bu iki ilçe için namaz vakti zamanı aynı olmamalıdır çünkü güneş farklı zaman diliminde doğuyor ve batıyor.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*P5-OGNuqTBmA8jVVNFzJWw.png" /><figcaption>Silivri-Şile akşam gün batımı 5 DAKİKA fark ediyor.</figcaption></figure><p>Yukarıdaki görselde de görüldüğü gibi, Silivri ile Şile arasında güneşin batma vakti tam <strong>5 DAKİKA</strong> farklıdır. O halde “İstanbul için iftar vakti” denildiğinde, hangi GPS koordinatına ve hangi rakıma göre hesaplandığını sormak gerekiyor. Çünkü her konumda güneş farklı bir anda batıyor.</p><p>Dolayısıyla tüm bu araştırmaların ve biriktirdiğim bilgilerin ışığında, adhan-js kütüphanesinin verdiği sonuçlara güvenmenin en mantıklı yol olduğuna kanaat getirdim ve onu kullanmaya başladım.</p><h3>⚠️ Bilinçsiz İlerleme = Aylarca Boşa Emek!</h3><p>Bu çalışma süreci boyunca planlama yapmadığım için aylarca boşu boşuna enerji harcayarak vakit kaybettim. Örneğin eski uygulamamda bir konum eklemek için üç ayrı seçim yapmanız gerekiyordu. Önce ülke, sonra şehir ya da eyalet, en sonunda ise ilçe ya da bölge seçmeniz isteniyordu. Aslında bu arayüz, Diyanet’in bugünkü web sitesinde hâlâ benzer şekilde duruyor.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_lLf2ghAUdN-KN5TQTe9xQ.jpeg" /><figcaption>Eski namaz vakti uygulamamın arayüzü</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*oMHzz0wHsJiynpiosYcomA.png" /><figcaption>Diyanet’in websitesi: <a href="https://namazvakitleri.diyanet.gov.tr/tr-TR/9541/istanbul-icin-namaz-vakt">https://namazvakitleri.diyanet.gov.tr/tr-TR/9541/istanbul-icin-namaz-vakt</a></figcaption></figure><p>Namaz vakti uygulamamda çoklu dil desteği sunuyorum. Şu an 16 dili destekliyor fakat işin içine biraz matematik koyduğumuzda problemin büyüklüğü ortaya çıkıyor.</p><p>200’den fazla ülke, her ülkede ortalama 50 şehir ya da eyalet, onların her birinde de ortalama 50 ilçe olduğunu varsayarsak, yaklaşık <strong>200 × 50 × 50 = 500.000</strong> yerleşim yeri ismi eder. Bu beşyüzbin ismi 16 dile çevirirseniz, toplamda <strong>8 milyon kelime</strong> eder! Böylesine devasa bir çeviriyi farklı dillerde nasıl yapabilirim ki? İşte asıl zor olan mesele buydu.</p><p>Ya çoklu dil desteğinden vazgeçecektim ya da bu sorunu bir şekilde çözmem gerekiyordu. Ama eğer çözebilirsem, İstanbul’un adını ister Çince karakterlerle ister Türkçe latin alfabesiyle yazın, uygulama size yine İstanbul’u bulacaktı ve ben bu özelliğin olmasını gerçekten çok istedim.</p><p>Bu sorunu çözmek için saatlerce, hatta günlerce kafa yordum. En sonunda aklıma şu geldi: <strong>Wikidata!</strong></p><p>Dünyadaki neredeyse her yerleşim yeri burada kayıtlı ve üstelik çok dilli. Yani farklı dillerdeki adları, doğrudan çeviri olarak kullanabilirdim. Bunun için her ülkenin, her şehrin, her ilçesinin verisini <strong>SPARQL</strong> sorgularıyla çekip bir hiyerarşi kurmaya koyuldum (bkz. translate-name-hierarchy dalı: <a href="https://github.com/canbax/GPS-miner/tree/translate-name-hierarchy).">https://github.com/canbax/GPS-miner/tree/translate-name-hierarchy)</a></p><p>Ama itiraf etmeliyim ki beşyüz bin ismi <strong>HTTP</strong> istekleri ve <strong>SPARQL’</strong>la toparlamak saatler sürüyor. O uzun koşuda ufacık bir rastgele hata bile tüm süreci sabote edebiliyor. Yine de vazgeçmedim çünkü sonunda, “İstanbul”u ister 汉字 ile yaz, ister “Istanbul” şeklinde yaz, doğru yeri bulduran o sihirli çok dillilik mümkün olacaktı.</p><h3>Gerçek Çözüm: Basitlikte Saklı Güç ✨</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*WgWLVhuH3E0y4EvxW3h-Mw.png" /><figcaption>“Keçi” ifadesini arayıp sonuçları listeleyen arayüz</figcaption></figure><p>Sadece basit bir <strong>arama çubuğu</strong>! 🔍</p><p>Tıpkı bir arama motoru kadar kolay ve sezgisel. Kullanıcı sorgusunu yazıyor ve karşısına yerleşim yeri önerileri çıkıyor. Artık üç farklı seçim yapmaya hiç gerek yok. Bu yaklaşım çok daha <strong>modern ve </strong>çok daha <strong>kullanıcı dostu</strong>. 🌍 Üstelik bizleri, beşyüzbin yerleşim yerini 16 dile tek tek çevirmek gibi devasa bir yükten de kurtarıyor.</p><p>Bu amaç doğrultusunda <strong>“</strong><a href="https://github.com/canbax/irem"><strong>irem</strong></a><strong>”</strong> isimli projemi hayata geçirdim. 💖 Projeyi anlattığım Medium yazısı da burada: <a href="https://canbax.medium.com/how-i-created-a-database-for-all-places-in-world-fa83ba8681e1">https://canbax.medium.com/how-i-created-a-database-for-all-places-in-world-fa83ba8681e1</a> Projeme isim olarak canım eşimin ❤️ ismini verdim.</p><p>Bu harika proje, dünyada bir ilk olarak, <strong>herhangi bir dilde herhangi bir yerleşim yerini arayabilmenizi sağlıyor</strong>. Üstelik tamamen açık kaynaklı, ücretsiz ve nispeten küçük bir veri tabanı. Projeyi oluştururken farklı mantıklar, metotlar ve kaynaklar kullandım ama asıl önemli olan, veri setini oluşturma sürecini adım adım kaydettim.</p><p>Veri tabanını üretmek, çoklu dil desteği sağlamak ve bunu hızlıca sorgulanabilir tutmak bana birçok zorluk çıkardı. Ancak <strong>eşimin ve Rabbimin desteğiyle</strong> bu projeyi başardım. Kendi kendime verdiğim bu düelloyu kazandığım için de tarifsiz bir mutluluk yaşıyorum. 🎉</p><h3>Veri Varsa, Gerisi Kolay</h3><p><a href="https://github.com/canbax/irem"><strong>irem</strong></a> projesi ile artık tüm yerleşim yerlerinin verilerini sorgulayıp GPS koordinatlarını elde edebiliyorum. 🌍</p><p><strong>adhan-js</strong> sayesinde ise herhangi bir GPS koordinatı için namaz vakitlerini yüksek hassasiyetle hesaplamak mümkün. Geriye sadece bu projeleri kullanıp arayüz ile sizlere sunmak kalmıştı. Ve ben, hem yazılımcılara örnek olması hem de kendi içime sinmesi için kapsamlı testlerle desteklenen, sağlam, güvenilir ve <strong>on yıllarca sürdürülebilir</strong> bir sistem kurmayı hedefledim. 🚀</p><h3>Zamanın API’si: namaz-vakti-api ⏰⚡</h3><p><a href="https://github.com/canbax/namaz-vakti-api">https://github.com/canbax/namaz-vakti-api</a> aslında gayet basit bir <strong>Express.js sunucusu</strong>. ⚡️</p><p>Bu sunucu, <strong>irem</strong> ve <strong>adhan-js</strong> projelerini kullanarak gelen HTTP isteklerine cevap veriyor. Projeyi web’de çalıştırmak için Vercel’in ücretsiz sunucularını tercih ettim. Bu ücretsiz sunucuyu kim, nasıl kullanıyor tam olarak bilemiyorum; ama istekleriniz olursa buradan ya da GitHub üzerinden bana ulaşabilirsiniz. 📩</p><p>Üstelik proje %93 <strong>test kapsamı</strong> ile oldukça güvenilir ve <strong>MIT lisansı</strong> ile GitHub’da herkese açık! 🔓✨</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/910/1*nvahdW0wvanj8xxquXa-_w.png" /></figure><h3>Arayüz: <a href="https://vaktiapp.com/">https://vaktiapp.com/</a></h3><p>Arayüzü geliştirmek için aşina olduğum Vue 3 ve Vuetify materyal tema kütüphanesini kullandım. 🎨 Projede %89 gibi güçlü bir <strong>test kapsamı</strong> mevcut. Ayrıca <strong>18 adet uçtan uca test (end-to-end test)</strong> yazdım. Bu testler için de modern ve güçlü bir araç olan <strong>Playwright</strong> kütüphanesinden faydalandım. ✅✨</p><p>🌟 <a href="https://github.com/canbax/vaktiapp/">Bu harika proje</a> tamamen <strong>açık kaynak kodlu</strong>, 💻 hiç <strong>reklam yok</strong>, ✅ tamamen <strong>ücretsiz</strong>, 🔒 hiçbir <strong>analiz yapmıyor</strong> ya da <strong>kullanıcı verisi toplamıyor</strong>.</p><p>💧 <strong>Su gibi şeffaf</strong> ve <strong>tertemiz</strong> bir proje. ✨</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7v034j1tHUTvQ7NYhs-HZg.png" /></figure><h4>Nasıl kullanılır?</h4><p>📱 Vakti App’in kullanımı son derece kolay! 👉 <a href="https://vaktiapp.com/">vaktiapp.com</a> adresine girerek hemen deneyebilirsiniz.</p><p>Ayrıca:<br> • <a href="https://play.google.com/store/apps/details?id=com.vakti.app">Google Play Store: Buradan indir</a><br> • <a href="https://apps.apple.com/tr/app/vakti-app/id6743095525">Apple App Store: Buradan indir</a></p><p>Üstelik uygulama içinden arkadaşlarınızla doğrudan bağlantı paylaşabilirsiniz. 🔗 Örneğin:<br> • <a href="https://www.vaktiapp.com/share?city=311034&amp;theme=light&amp;isShowHijri=1&amp;year=YYYY&amp;month=MMMM&amp;weekDay=DDDD&amp;time=XX%3AYY%3AZZ&amp;method=Turkey&amp;madhab=shafi&amp;zoom=1&amp;language=tr">Ankara</a><br> • <a href="https://www.vaktiapp.com/share?city=311922&amp;theme=light&amp;isShowHijri=1&amp;year=YYYY&amp;month=MMMM&amp;weekDay=DDDD&amp;time=XX%3AYY%3AZZ&amp;method=Turkey&amp;madhab=shafi&amp;zoom=1&amp;language=tr">İstanbul</a><br> • <a href="https://www.vaktiapp.com/share?city=311955&amp;theme=light&amp;isShowHijri=1&amp;year=YYYY&amp;month=MMMM&amp;weekDay=DDDD&amp;time=XX%3AYY%3AZZ&amp;method=Turkey&amp;madhab=shafi&amp;zoom=1&amp;language=tr">İzmir</a></p><p>🚀 Hızlı, pratik ve paylaşması keyifli!</p><p>Ayrıca bir web sitesi yöneticisiyseniz, sitenize namaz vakitlerini şık bir <strong>widget</strong> olarak kolayca gömebilirsiniz. 🧩✨ Aşağıda, tek satırla çalıştırabileceğiniz <strong>örnek gömme kodu</strong> yer alıyor:</p><pre>&lt;iframe src=”https://www.vaktiapp.com/widget?city=311034&amp;theme=light&amp;isShowHijri=1&amp;year=YYYY&amp;month=MMMM&amp;weekDay=DDDD&amp;time=XX%3AYY%3AZZ&amp;method=Turkey&amp;madhab=shafi&amp;zoom=1&amp;language=tr&quot; width=”400&quot; height=”400&quot; style=”border:none;”&gt;&lt;/iframe&gt;</pre><h3>Gelecekte ne yapılabilir?</h3><p>Yıllarca sürdürülebilir bir proje geliştirmeyi hayal ettiğim için artık tek yapmak istediğim şey kullandığım kütüphaneleri düzenli güncellemek ve projenin yıllarca sorunsuz çalışmasını sağlamak. 🌱</p><p>Ben bu uygulamayı yaklaşık 5 aydır aktif olarak kullanıyorum. Tıpkı Steve Jobs’ın iPhone’u önce kendi kullanım ihtiyacından doğurması gibi ben de aslında kendi ihtiyacımı çözmek için bu uygulamayı yaptım. 📱✨</p><p>Ama en güzeli şu ki: başkalarının da kullanması, kodlarımdan faydalanması ve onlara yardımcı olması, bu projeyi benim için çok daha anlamlı hale getiriyor.</p><p>Önerilerinize tamamen açığım! 🙌<br> • İsterseniz kodları alıp kendi geliştirmelerinizi ekleyin,<br> • İsterseniz sadece uygulamayı kullanın.</p><p>Her iki durumda da, bu yolculukta sizlerle buluşmuş olmak beni çok mutlu ediyor. 💖</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=95eb4c02d00e" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Adalet, Adalet, Adalet!]]></title>
            <link>https://canbax.medium.com/adalet-adalet-adalet-d2fd4d558acf?source=rss-5812122afdba------2</link>
            <guid isPermaLink="false">https://medium.com/p/d2fd4d558acf</guid>
            <category><![CDATA[çok]]></category>
            <category><![CDATA[adalet]]></category>
            <category><![CDATA[iskender]]></category>
            <category><![CDATA[alexander-the-great]]></category>
            <category><![CDATA[kuran]]></category>
            <dc:creator><![CDATA[Yusuf CANBAZ]]></dc:creator>
            <pubDate>Sun, 11 May 2025 16:54:15 GMT</pubDate>
            <atom:updated>2025-05-11T16:54:15.409Z</atom:updated>
            <content:encoded><![CDATA[<h4>“para, para, para” sözüne reddiye</h4><p>TRT 1 de yıllar önce yayınlanmış olan <a href="https://youtu.be/ANayfUkfV-s?si=jjrXTrzbqNdkuhsh&amp;t=659">Yunus Emre dizisi</a> verdiği bazı mesajlar ile aklımı, ruhumu, kalbimi şefkat ve bilgelik ile okşuyor. İlk bölümde adaletten öyle güzel bahsetmiş ki, paylaşmak istedim.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*SMvlNRIYRZ1ZjNyeNlrVVw.png" /></figure><blockquote>“Dirliği de birliği de sağlayan ADALETTİR. O adalet ki, göğü üstümüzde yeri altımızda tutan direktir. Eyvah ki o direk göçmeye! O vakit kıyameti dahi beklemeye lüzum yoktur.”</blockquote><p>Burada bahsedilen adalet bence sadece insanlar arasındaki mal, mülk, hak, hukuktan ibaret değildir. Adalet tüm dünyadaki varlıklar arasında kurulmuş hassas düzendir. Adalet uzaydaki kütlelerin birbirini çekmesinden, aynı yüklü iyonların birbirini itmesine kadar evrende heryere içkindir. İnsanlar bu adaleti <strong><em>“daha güçlü”</em></strong> olmak için göz ardı ettiklerinde ve “daha güçlü”, “daha zengin”, “daha popüler” olduklarını zannedip, <strong><em>“kazandıklarını”</em></strong> zannettiklerinde aslında hiçbir şey kazanmıyor aslında kaybediyorlar, ama fark edebilene … İnsanlar kendi istekleri olduğunda, dünyayı kendileri yönettiğinde, kendi sözleri geçtiğinde dünyanın harika, mükemmel olacağına inanıyorlar. Her siyasi lider, gücü, iradeyi, desteği kendinde toplamak ister, buna yönelik mesajlar verirler.</p><p>Çünkü bunu yaptığında, kendi idealleri, kendi hayalleri gerçek olduğunda herşeyin çok güzel olacağına kendini inandırmıştır. Oysaki tarih aslında açık ve net bir şekilde bunun hiçte böyle olmadığını gözler önüne sermiştir ancak tarihi “savaş çıkarıp savaşı kazanmak eşittir başarı” şeklinde kodlayan bir zihin bunu ASLA göremez. Çoğu zaman kazanan tarafın “fetih” diye isimlendirdiği tarihsel olay kaybeden tarafından “istila” olarak adlandırıyor ne kadar ilginç. Burada herhangi bir dilden, dinden, ırktan herhangi bir lider için aynı şeyler söylenilebilir. Örnek olarak bu tarihsel kişilerden birini Büyük İskender’i bir de farklı bir göz ile inceleyelim.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*coKM-4N0Mc41zUU9.jpg" /><figcaption>İskender’in imparatorluğunun en geniş sınırları</figcaption></figure><p>BÜYÜK İSKENDER! Tarihin gördüğü en büyük imparator. 13–14 yılda Yunanistan’dan Kuzey Batı Hindistan’a kadar tırnak içinde <strong><em>“feth”</em></strong> etti. Ne demek feth etti. Burada ben ne dersem o olacak dedi. Başka biri hayır ben ne dersem o olacak dedi. Sonra anlaşamayınca 2 taraf da ordular toplayıp birbirini öldürmeye çalıştı. Binlerce insan savaşlarda can verdi ya da sakat kaldı ya da yakınlarının ölümlerine, yaralanmalarına şahit oldu büyük travmalar yaşadılar. Sonunda ne oldu peki? Birkaç yıllığına İskender ne derse o oldu, sonra o da öldü gitti. Onun hükmü de bitti. Gücü tanrılaştırmış insanlar ona “Büyük İskender” lakabını taktı ve böylece onu meşhur yaptılar. Hala da böyle meşhur yapmaya devam ediyorlar. Peki İskender’in orduları karşısında yenilen Pers İmparatorluğu hikayeyi nasıl anlatıyor? Bir genç delikanlı adam, çok iyi savaşıyordu, geldi topraklarımızı istila etti, yaktı, yıktı, öldürdü … Tabiki İskender nefsi müdafa için savaşsaydı çok geçerli bir argümanı olurdu. Ancak bu durumda Makedonya’dan kalkıp batı Hindistan’a kadar ordusuyla karşısında duran herkesi öldüren bir adam var. Peki sonuçta İskender hiç doğmasaydı dünya daha kötü bir yer mi olacaktı? <strong>İskender iyi birşeyler mi yaptı?</strong> İskender tırnak içinde <em>“fetihler”</em> yapmak için uğraşmasaydı dünya daha kötü bir yer mi olacaktı?</p><p>Çoğu siyasi lider, iktidar sahibi, tarikat, cemaat ya da ideoloji hep bu kısır güç savaşında. <strong>Gücünü çoğaltma yarışı …</strong> Bu yarışta ne kadar çok “puan” toplarsa, ne kadar çok üste çıkarsa o kadar tırnak içinde <strong>“İYİ”</strong> mi oluyor?</p><p><strong>HAYIR!</strong> Hiç iyi olmuyor, tarih önümüzde, hep aynı safsata, hep aynı güç savaşı, çoğaltma sevdası, çokluk aşkı … <a href="https://www.kuranokuyan.com/102-tekasur-suresi-1-ayet">Kur’an daki Tekasür suresi insanın bu çokluk hevesini çok güzel ve çok öz bir şekilde özetliyor.</a> Bir cümle:</p><p>“Çoğaltma yarışı sizi oyaladı”. Evet peki çoğaltma yarışına girmeyelim ama ne yapalım derseniz adalet yarışına girelim, girmeliyiz. Kur’an zaten her yerde sürekli adaletten bahseder. Sürekli insana zerre miktar haksızlık yapılmayacağından bahseder. Kimsenin kimsede zerre miktar hakkı kalmayacağından bahseder. Öyle “hakkını helal et, helal olsun” haa tamam o zaman. İşte öyle olmayacağından bahsediyor sürekli Kur’an. İnsanın hakkı neyse onu alacaktır. Helal olsun haram olsun diye ağzından çıkan lafın bazı haklarda hiçbir hükmü yoktur.</p><p>Adalet yarışına girelim mesela trafikte arabanı iki adım öteye rahatça park etmek yerine yol kenarına 5 dakika dursun deyip gidiyorsun. Senden sonra sonra gelenlere yer bırakmıyorsun trafik oluyor. Sen 2 adım daha az atıp daha sağlıksız yaşayıp, işini 2 dakika daha erken bitir diye arkadan gelen 100 tane araba 2 dakika zaman kaybediyor. Daha çok benzin harcıyor, atmosferi daha çok kirletiyor, zahmet çekiyor. Şimdi sen bunun hakkını vermeyeceğini mi sanıyorsun? Kur’an vereceksin diyor.</p><p>Sokakta açık havada sigara içiliyor. Bu sigaradan kopan yanan tütün düşüp bir kıyafeti kirletiyor, yakıyor. Bunun hakkını Allah sormayacak mı soracak? İçilen her bir sigara, ortalama 11 dakika ömrü kısaltıyor. Peki sigara içmeyip sigara içen insanın yanından yürüyenin hakkı ne olacak? Belki o bir nefeslik pasif içilen sigara dumanı kanseri tetikliyor? Bunların da hepsinin de bir hakkı var ve Allah ahirette bunların hepsinin zerre ağırlığınca dahi olsa hesaba katılacağını Kur’an’da çok yerde ifade ediyor.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d2fd4d558acf" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How I created a database for all places in world?]]></title>
            <link>https://canbax.medium.com/how-i-created-a-database-for-all-places-in-world-fa83ba8681e1?source=rss-5812122afdba------2</link>
            <guid isPermaLink="false">https://medium.com/p/fa83ba8681e1</guid>
            <category><![CDATA[database]]></category>
            <category><![CDATA[geodatabase]]></category>
            <category><![CDATA[location]]></category>
            <category><![CDATA[geo]]></category>
            <dc:creator><![CDATA[Yusuf CANBAZ]]></dc:creator>
            <pubDate>Mon, 03 Feb 2025 12:50:00 GMT</pubDate>
            <atom:updated>2025-08-19T12:08:04.340Z</atom:updated>
            <content:encoded><![CDATA[<h3>irem: Dünyayı Avucuna Sığdıran Veritabanı” 🌍✨</h3><p>Bu yazıda, ücretsiz, açık kaynaklı bir nodejs kütüphanesi olan “irem”i nasıl ve neden oluşturduğumu anlatacağım.</p><h4>Neden?</h4><p><a href="https://github.com/canbax/namaz-vakti-api">Namaz-vakti-api</a> projem için dünyadaki tüm yerleşim yerlerinin GPS koordinatlarını bulmamı sağlayacak bir kütüphaneye ihtiyacım vardı. Bu yer bir şehir, bölge, kasaba olabilir. Belediyelik olan herhangi bir idari bölüm olabilir. Olası seçenekleri kontrol ettiğimde, halihazırda çok iyi veritabanları veya kütüphaneler olduğunu gördüm.<br><a href="https://github.com/OSMNames/OSMNames/">OSMNames</a> faydalı ve cömert bir çaba. <a href="https://tr.wikipedia.org/wiki/Orta,_%C3%87ank%C4%B1r%C4%B1">Orta, Çankırı</a> gibi çok küçük bir belediyeyi aradığımda bile sonuç bulabiliyor.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*sWJ3jtvHZEO-J2gzSc7xxg.png" /><figcaption>Orta Anadolu’da Çankırı’nın Orta kasabasını arıyorum ve buluyor</figcaption></figure><p>Bu harika ama verileri kontrol ettiğimde bazı sorunlar gördüm. Öncelikle, herhangi bir dili desteklemek istedim. Örneğin Chengdu (成都市) gibi rastgele bir Çin şehri bulmak istedim, Çince harfleri yazdığımda bir sonuç vermedi. (Evet, yazmadım, kopyalayıp yapıştırdım 😁 )</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3srAJg1ooQp5xH3vbNWVpg.png" /><figcaption>成都市 araması osmnames’de herhangi bir sonuç vermiyor</figcaption></figure><h4>Kendi veritabanımı oluşturma (<a href="https://github.com/canbax/GPS-miner">GPS-miner</a> projesi)</h4><p>Öncelikle GPS verilerini bu açık verileri kullanarak düzgün bir şekilde istiflemem gerek. Bu istifleme işlemini sağlıklı, düzgün ve tekrarlanabilir yapmak için <a href="https://github.com/canbax/GPS-miner">GPS-miner</a> projesini oluşturum. <a href="https://github.com/canbax/GPS-miner">GPS-miner</a> projesinin amacı aslında küçük etkili ancak hızlıca arama yapılabilicek bir veritabanı oluşturmak. Bu projede adım adım hangi komutları tek tek nasıl çalıştırdığımı yazıp, aynı zamanda dökümante ettim.</p><h4>Türkiye verilerini işleme</h4><p>Öncelikle Türkiye için %100 doğru ve mükerrer verinin olmamasını özellikle istiyordum. Bu amaçla Türkiye’deki verileri üretmek için <a href="https://github.com/dr5hn/countries-states-cities-database/">countries-states-cities-database</a>’i kullandım. Tabi buradaki verilerin üzerinde de ufak düzenlemeler yaptım ancak herşeyi kodlar scriptler ile yaparak işlemi otomatize edilebilir tuttum. Buradan bir <em>turkish_cities.csv</em> CSV dosyası çıkardım.</p><h4>Dünyadaki diğer yerlerin verilerini işleme</h4><p>Bunun için <a href="https://github.com/OSMNames/OSMNames/releases">OSMNames</a>’in cömertçe sunduğu 9 GB boyuntundaki konum verilerini işledim. Ve buradan bir TSV dosyası çıkardım. Veri setini daha da geniş tutmak için, <a href="https://lite.ip2location.com/">ip2location</a>’ın ücretsiz olarak sunduğu <a href="https://lite.ip2location.com/database/db5-ip-country-region-city-latitude-longitude">db5-ip-country-region-city-latitude-longitude</a> verilerini kullandım. Burada sunulan IP verileri tamamen alakasız benim için sadece konum isimleri ve GPS koordinatları gerekli. GPS-miner projemin <a href="https://github.com/canbax/GPS-miner/tree/translate-name-hierarchy">translate-name-hierarchy</a> isimli git dalında ülke isimlerini 16 farklı dile wikipedia yardımı ile çevirip JSON olarak kayıt ettim. Ayrıca IP2LOCATION-LITE-DB5.CSV dosyasında işleme yapıp buradan da sadece İngilizce isimler ile şehir verilerini çıkardım.</p><h4>Tüm şehir verilerini birleştirme</h4><p>Daha sonra <a href="https://github.com/dr5hn/countries-states-cities-database/">countries-states-cities-database</a>, <a href="https://github.com/OSMNames/OSMNames/releases">OSMNames</a>, <a href="https://lite.ip2location.com/database/db5-ip-country-region-city-latitude-longitude">ip2location</a> verilerini <a href="https://github.com/canbax/GPS-miner/blob/main/merge-data.py">merge-data.py</a> scripti ile birleştirip <a href="https://github.com/canbax/GPS-miner/blob/main/generated_data/db.tsv">db.tsv</a> olarak isimlendirdiğim 350 bin satırlık bir TSV dosyası elde ettim. Bu TSV dosyasını veri tabanı olarak kullandım.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2Nx1VVwbR7zR4PfTyNSXvg.png" /><figcaption><a href="https://github.com/canbax/GPS-miner/blob/main/generated_data/db.tsv">db.tsv</a> dosyasının ilk 30 satırı</figcaption></figure><p>Tüm verileri çoklu dil desteği sağlayacak şekilde birleştirdim. Böylece Türkiye’deki tüm şehirler içinde alternatif isim verilerini de istifledim. Bu sayede İstanbul şehrini bulmak için <a href="https://vakit.vercel.app/api/searchPlaces?q=Konstantiniyye">Konstantiniyye</a> ya da Çince <a href="https://vakit.vercel.app/api/searchPlaces?q=%E4%BC%8A%E6%96%AF%E5%9D%A6%E5%A0%A1">伊斯坦堡</a> yazmanız size aynı sonucu verecek.</p><p>Tabiki verilerin gerçekten doğru olduğunu test etmek içinde çeşitli Python scriptleri yazarak verileri teyit ettim.</p><h4>TSV dosyasında veri tabanı olur mu?</h4><p>TSV dosyası şeklinde bir veri tabanı tabiki fazla yer kaplayabilir ve hızlıca sorgulanamaz. Ancak verilerin gelecekte kolayca düzenlenebilmesi için faydalı olacaktır. Zaten dosya boyutu da 21 MB yani çok büyük de değil. Ancak yinede dosya üzerindeki bir satırı okuma işlemini çok hızlı yapmak için bu <a href="https://github.com/canbax/GPS-miner/blob/main/create-index.js">TSV dosyasını indexleyip</a>, indexleri de <a href="https://github.com/canbax/GPS-miner/blob/main/generated_data/index.bin"><em>index.bin</em></a><em> </em>isimli ikili dosya yapısına kayıt ettim. Bu index dosyasını okuyarak istediğim satırı O(1) zamanda çok hızlı okuyabileceğim.</p><h4>Verilerin hızlı sorgulanabilmesi</h4><p>21 MB’lık TSV dosyasındaki veriler temelde 2 tip sorgu için optimize edilmiş olmalıdır.</p><ol><li>Verilen arama terimi ile sonuçların bulunması</li><li>Verilen GPS koordinatlarına yakın sonuçların listelenmesi</li></ol><h4>Trie veri yapısı olarak verileri arama terimleri için indexleme</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*upRKIVz1Lqrn3c98qo2TPg.png" /><figcaption>Basit &quot;Trie&quot; veri yapısı</figcaption></figure><p>Öncelikle arama terimine uygun sonuçları getirmek için aklıma meşhur <a href="https://en.wikipedia.org/wiki/Trie">Trie</a> veri yapısını kullanmak geldi. Trie veri yapısında her harf bir bağlantıyı (edge) temsil etti. Her düğüm (node) ise o düğümde bitmiş kelimelerin satır numaralarını bir dizi şeklinde temsil ettim. TSV dosyasındaki her ismi ve virgül ile ayrılmış her alternatif ismi Trie veri yapısa ekledim. Trie içine kayıt ederken isimleri hem normalize edilmiş şekilde hem de çiğ halleriyle kayıt ettim. Bu sayede Türkçe’deki şapkalı harfler ya da latin alfabesinde olmayan harflerde de arama yapıp sonuçları bulabilirsiniz. Mesela <a href="https://vakit.vercel.app/api/searchPlaces?q=Hakk%C3%A2ri">Hakkâri</a> araması ve <a href="https://vakit.vercel.app/api/searchPlaces?q=Hakkari">Hakkari</a> araması size aynı sonucu verecektir. Trie yapısını JSON dosyası olarak kayıt edip daha sonrada sıkıştırdım.</p><h4>GPS koordinatlarından hızlı veri aranması</h4><p>Koordinat verileri 2 boyutlu olduğundan verileri 2 boyutlu bir grid yapısına 0.1 lik hücre boyutuyla <a href="https://github.com/canbax/GPS-miner/blob/main/create-grid.js">bir script ile kayıt ettim</a>. Böylece belirli GPS koordinatlarına yakın yerleri 2 boyutlu indexleme sayesinde çok hızlı bulabileceğiz.</p><h4>Vercel sunucusunda yayınlamak</h4><p>Uygulamamı Vercel sunucusunda yayınladığımda uygulamamın çalışmadığını fark ettim. Sorunu incelediğimde uygulamanın 1024 MB’tan fazla hafıza kullanmaya çalıştığını fark ettim. Vercel’in izin verdiği limiti geçiyordum. Uygulamam hata veriyordu.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/548/1*uLMyZRWg70Fir67rrTdmUg.png" /><figcaption>vercel de hata mesajı</figcaption></figure><p>Burada JSON formatındaki Trie veri yapısından yeni nesneler oluşturulmasının çok fazla hafıza kapladığını fark ettim. Bunu engellemek için <a href="https://github.com/canbax/irem/commit/a985d63f84db1c8c9583a632c7b19119f5b6309e">kodu değiştirip</a>, direk olarak JSON formatını kullanarak sorgulamaları yapabileceğimi fark ettim. Bu sayede <a href="https://www.npmjs.com/package/irem">irem</a> kütüphanemi <a href="https://github.com/canbax/namaz-vakti-api">namaz-vakti-api</a> projemde kullanıp Vercel’de sunabildim. Kullanılan hafıza 700 MB’dan daha aza düştü.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/861/0*ThuhHp3Cex3_Y-oE" /><figcaption>1021 MB dan 675 MB</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*IyYjku_h-sT4E-Z-JHafkw.png" /><figcaption>“<a href="https://www.npmjs.com/package/express-status-monitor">express-status-monitor</a>” kütüphanesi ile ölçtüğüm hafıza ve “heap” hafızası kullanım değişimi</figcaption></figure><p>En nihayetinde namaz-vakti-api projesini de <a href="https://vakitapp.com">Vakit App</a> projemde konum bulmak için kullandım.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Ozz3F3v32Wg58hCymJ1AdQ.png" /><figcaption>Projelerimin birbirine olan bağımlılıklarını gösteren basit şema</figcaption></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=fa83ba8681e1" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Can WebAssembly make your web apps faster?]]></title>
            <link>https://canbax.medium.com/can-webassembly-make-your-web-apps-faster-100844a503d0?source=rss-5812122afdba------2</link>
            <guid isPermaLink="false">https://medium.com/p/100844a503d0</guid>
            <category><![CDATA[sorting]]></category>
            <category><![CDATA[webassembly]]></category>
            <category><![CDATA[javascript]]></category>
            <dc:creator><![CDATA[Yusuf CANBAZ]]></dc:creator>
            <pubDate>Sun, 16 Apr 2023 17:51:58 GMT</pubDate>
            <atom:updated>2023-04-17T01:50:24.448Z</atom:updated>
            <content:encoded><![CDATA[<h3>What is WebAssembly?</h3><h3>Assembly?</h3><p>As we all know, machines read binary codes (strings of zeros and ones) because it is very convenient for them but not for humans. So engineers basically created a mapping from binary code and called the mapped version ‘Assembly’.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/933/0*CnRIjx8jS3MUu_ml" /></figure><h3>WebAssembly?</h3><p>WebAssembly is an ‘Assembly’-like language. Its nickname is <em>Wasm</em>. Basically, WebAssembly is the Assembly language for modern browsers.</p><p>People usually don’t write Assembly code directly because it can be tedious. That’s why there are many Assembly compilers that simply create Assembly code from <a href="https://emscripten.org/">C/C++</a>, C#, Rust, and Java … So basically you can run an existing C/C++ or Rust application inside a browser.</p><p>WebAssembly code can be directly injected into Javascript or Node.js environment. This can be very useful because you can combine WebAssembly with Javascript.</p><p>WebAssembly provides near-native performance. Javascript is just-in-time (JIT) compiled. But WebAssembly is pre-compiled. So that’s why wasm can be executed faster than Javascript code.</p><h3>Get your hands dirty</h3><p>Firstly, all the source codes used in this post are available in <a href="https://github.com/canbax/wasm0">GitHub</a>. The ultimate question in my mind is <strong>“Can we sort an array of integers faster with WebAssembly?”</strong>. Since we want to execute faster, I think I should use the holy programming language <strong>C</strong>. To compile WebAssembly, I used <a href="https://emscripten.org">emscripten</a> I wrote C code and compiled C code into WebAssembly using emscripten. I simply followed instructions at <a href="https://developer.mozilla.org/en-US/docs/WebAssembly/C_to_wasm">MDN</a> and <a href="https://emscripten.org/docs/getting_started/downloads.html">emscripten</a></p><h3>Hello World!</h3><p>After you download and install emscripten by following their documentation, you should have a emsdk folder. Go into that folder and run source ./emsdk_env.sh. Now you can compile your C codes into WebAssembly. To compile a hello world WebAssembly code, I used the command emcc -o hello3.html hello3.c --shell-file html_template/shell_minimal2.html -s NO_EXIT_RUNTIME=1 -s &quot;EXPORTED_RUNTIME_METHODS=[&#39;ccall&#39;]&quot;. Here emcc is the emscripten compiler. -o hello3.html hello3.c means compile &#39;hello3.c&#39; and output HTML file &#39;hello3.html&#39;. My &#39;hello3.c&#39; is like below</p><pre>#include &lt;stdio.h&gt;<br>#include &lt;emscripten/emscripten.h&gt;<br><br>int main() {<br>    printf(&quot;Hello World\n&quot;);<br>    return 0;<br>}<br><br>#ifdef __cplusplus<br>#define EXTERN extern &quot;C&quot;<br>#else<br>#define EXTERN<br>#endif<br><br>EXTERN EMSCRIPTEN_KEEPALIVE void myFunction(int argc, char ** argv) {<br>    printf(&quot;MyFunction Called\n&quot;);<br>}</pre><p>It simply prints ‘Hello World’ to the developer console when the web page is loaded. And also prints ‘MyFunction Called’ when the C function is called.</p><p>--shell-file html_template/shell_minimal2.html of the script basically uses a template html file to generate the output &#39;hello3.html&#39; file. My &#39;shell_minimal2.html&#39; is like below.</p><pre>&lt;html&gt;<br>  &lt;body&gt;<br>    &lt;button id=&quot;mybutton&quot;&gt;Call the C function&lt;/button&gt;<br>  &lt;/body&gt;<br>&lt;/html&gt;<br>{{{ SCRIPT }}}<br>&lt;script&gt;<br>  document.getElementById(&quot;mybutton&quot;).addEventListener(&quot;click&quot;, () =&gt; {<br>    alert(&quot;check console&quot;);<br>    const result = Module.ccall(<br>      &quot;myFunction&quot;, // name of C function<br>      null, // return type<br>      null, // argument types<br>      null // arguments<br>    );<br>  });<br>&lt;/script&gt;</pre><p>The rest of the command is necessary to call the function using some special method called ccal. If you execute the command, it will generate &#39;hello3.html&#39;, &#39;hello3.js&#39;, and &#39;hello3.wasm&#39; files. If you look at &#39;hello3.html&#39; you will see</p><pre>&lt;html&gt;<br>  &lt;body&gt;<br>    &lt;button id=&quot;mybutton&quot;&gt;Call the C function&lt;/button&gt;<br>  &lt;/body&gt;<br>&lt;/html&gt;<br>&lt;script async type=&quot;text/javascript&quot; src=&quot;hello3.js&quot;&gt;&lt;/script&gt;<br>&lt;script&gt;<br>  document.getElementById(&quot;mybutton&quot;).addEventListener(&quot;click&quot;, () =&gt; {<br>    alert(&quot;check console&quot;);<br>    const result = Module.ccall(<br>      &quot;myFunction&quot;, // name of C function<br>      null, // return type<br>      null, // argument types<br>      null // arguments<br>    );<br>  });<br>&lt;/script&gt;</pre><p>The only difference between the template file ‘shell_minimal2.html’ and ‘hello3.html’ is the {{{ SCRIPT }}} section. Inside the &#39;hello3.html&#39;, this part is replaced with &lt;script async type=&quot;text/javascript&quot; src=&quot;hello3.js&quot;&gt; &#39;hello3.js&#39; is a Javascript file that provides a global variable named Module and also imports hello3.wasm. hello3.wasm is a binary file. You cannot read it with the naked eye easily. Start an HTTP server and open &#39;hello3.html&#39; in a modern browser. I&#39;m using VSCode for code editing and it has <a href="https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer">a nice extension</a> for a simple HTTP server. Then you can actually see that the wasm file is converted to WebAssembly Text (.wat) format in your browser.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*YNX922lRJoDwNymL" /></figure><p>In the developer console, you can see printf statements of C codes are actually printed. This is hello world for WebAssembly! Also if you click on the button, you will see it calls a C function! That&#39;s amazing! From Javascript, we can call a C function!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/554/0*nkEtsn3nnTu6xnGp" /></figure><h3>Fibonacci</h3><p>Now let’s see if a C code can execute faster than plain Javascript code. To make a comparison I implemented the Fibonacci algorithm in a very inefficient way in both C and Javascript and executed it side-by-side.</p><p>I executed the command just like the hello world example emcc -o hello4.html fib.c --shell-file html_template/simple_compare.html -sEXPORTED_FUNCTIONS=_fib -sEXPORTED_RUNTIME_METHODS=cwrap. Here to call a C function, we use some other special method cwrap. Below is my C code file &#39;fib.c&#39;</p><pre>int fib(int n)<br>{<br>    if (n &lt; 2)<br>        return n;<br>    return fib(n - 1) + fib(n - 2);<br>}</pre><p>Here is my ‘simple_compare.html’ file</p><pre>{{{ SCRIPT }}}<br>&lt;input type=&quot;number&quot; id=&quot;fibNum&quot; value=&quot;35&quot; /&gt;<br>&lt;button id=&quot;mybutton&quot;&gt;Compare JS vs C on Fibonacci&lt;/button&gt;<br>&lt;script&gt;<br>  document.getElementById(&quot;mybutton&quot;).addEventListener(&quot;click&quot;, () =&gt; {<br>    const fibIndex = Number(document.getElementById(&quot;fibNum&quot;).value);<br>    const t1 = executeFibonacciOnC(fibIndex);<br>    const t2 = executeFibonacciOnJS(fibIndex);<br>    console.log(&quot;C time:&quot;, t1, &quot;JS time:&quot;, t2);<br>  });<br><br>  // finds the &#39;n&#39;th fibonacci number in C using the worst implementation and returns the execution time<br>  function executeFibonacciOnC(n) {<br>    fibC = Module.cwrap(&quot;fib&quot;, &quot;number&quot;, [&quot;number&quot;]);<br>    const t1 = performance.now();<br>    const res = fibC(n);<br>    const t2 = performance.now();<br>    console.log(&quot;c result: &quot;, res);<br>    return t2 - t1;<br>  }<br><br>  function executeFibonacciOnJS(n) {<br>    const t1 = performance.now();<br>    const res = fib(n);<br>    const t2 = performance.now();<br>    console.log(&quot;JS result: &quot;, res);<br>    return t2 - t1;<br>  }<br><br>  function fib(n) {<br>    if (n &lt; 2) return n;<br>    return fib(n - 1) + fib(n - 2);<br>  }<br>&lt;/script&gt;</pre><p>Here you can see that Javascript is a lot faster than C code. I feel like I wasted all my time and WebAssembly is just a balloon.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/561/0*grQrrsdfIuu3GsT9" /></figure><p>Then I realized there are some compiler optimization flags in emscripten. Let’s use them emcc -o hello4.html fib.c --shell-file html_template/simple_compare.html -sEXPORTED_FUNCTIONS=_fib -sEXPORTED_RUNTIME_METHODS=cwrap -O2 I just added a -O2 flag to my command and do it again.</p><p>Now you can see some magic!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/559/0*beeXU-qjl-yfcX9P" /></figure><p>This time, C code executes faster! In some cases, it is even 2 times faster!</p><h3>Sort numbers</h3><p>Now let’s try our ultimate aim. Can we sort numbers faster than Javascript? Let’s try with C standard library function qsort I think it should be faster, C codes are usually fast. Similar to the previous command, I executed the command emcc -o qsort.html arraySorter.c --shell-file html_template/simple_compare_array.html -sEXPORTED_FUNCTIONS=_arraySorter,_malloc,_free -sEXPORTED_RUNTIME_METHODS=cwrap My &#39;arraySorter.c&#39; is very simple like below. It simply calls qsort function with a comparer function.</p><pre>#include &lt;stdlib.h&gt;<br><br>int compareFn(const void *a, const void *b)<br>{<br>    return (*(int *)a - *(int *)b);<br>}<br><br>void arraySorter(int *arr, int size)<br>{<br>    qsort(arr, size, sizeof(int), compareFn);<br>}</pre><p>My template file ‘simple_compare_array.html’ is like below. Here passing and array as a parameter is bit hard. We need to use malloc and free functions to create and array and pass it to C.</p><pre>{{{ SCRIPT }}}<br>&lt;input type=&quot;number&quot; id=&quot;arrSize&quot; value=&quot;1000000&quot; /&gt;<br>&lt;button id=&quot;mybutton&quot;&gt;Compare JS vs C on sorting integer array&lt;/button&gt;<br>&lt;script&gt;<br>  function getArray() {<br>    const l = Number(document.getElementById(&quot;arrSize&quot;).value);<br>    return Array.from({ length: l }, () =&gt; Math.floor(Math.random() * l));<br>  }<br>  document.getElementById(&quot;mybutton&quot;).addEventListener(&quot;click&quot;, () =&gt; {<br>    const arr1 = getArray();<br>    const arr2 = Array.from(arr1);<br>    const t1 = arrayOperationsOnC(arr1);<br>    const t2 = arrayOperationsOnJS(arr2);<br>    console.log(&quot;C time:&quot;, t1, &quot;JS time:&quot;, t2);<br>  });<br><br>  function arrayOperationsOnC(n) {<br>    const BYTE_SIZE_OF_INT = 4;<br>    const t1 = performance.now();<br>    const arraySize = n.length;<br>    const arrayPointer = Module._malloc(arraySize * BYTE_SIZE_OF_INT);<br>    Module.HEAP32.set(new Int32Array(n), arrayPointer / BYTE_SIZE_OF_INT);<br>    const cFunc = Module.cwrap(&quot;arraySorter&quot;, null, [&quot;number&quot;, &quot;number&quot;]);<br>    cFunc(arrayPointer, arraySize);<br>    const resultArray = Array.from(<br>      Module.HEAP32.subarray(<br>        arrayPointer / BYTE_SIZE_OF_INT,<br>        arrayPointer / BYTE_SIZE_OF_INT + arraySize<br>      )<br>    );<br>    console.log(resultArray);<br>    Module._free(arrayPointer);<br>    const t2 = performance.now();<br>    return t2 - t1;<br>  }<br><br>  function arrayOperationsOnJS(n) {<br>    const t1 = performance.now();<br>    const res = arraySorter(n);<br>    console.log(res);<br>    const t2 = performance.now();<br>    return t2 - t1;<br>  }<br><br>  function arraySorter(arr) {<br>    return arr.sort((a, b) =&gt; a - b);<br>  }<br>&lt;/script&gt;</pre><p>If I execute this I see my C code is like 4 times slower! What the heck is wrong?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/557/0*GxDrKniaCJvzgFef" /></figure><p>OK, I see I didn’t use compiler optimization flags. Let’s try -O2 flag and do it again. Now it is faster but still very slower than Javascript.</p><blockquote><em>C time: 716.1 JS time: 269.5</em></blockquote><p>Even if I use -O3 flag, I see it is still slower. There is no &#39;-O4&#39; this is the most optimized.</p><blockquote><em>C time: 711.9 JS time: 270.6</em></blockquote><p>Now we are sure that quick sort with C cannot pass plain Javascript. But we used C standard library function qsort. Can we try plain C code for quick sort? Let&#39;s try. I used command emcc -o faster_sorter.html arraySorter2.c --shell-file html_template/simple_compare_array.html -sEXPORTED_FUNCTIONS=_arraySorter,_malloc,_free -sEXPORTED_RUNTIME_METHODS=cwrap -O2 Here I used the same HTML template but this time I implemented quick sort algorithm with plain C code. Below is my arraySorter2.c file.</p><pre>// Quick sort in C<br><br>// function to swap elements<br>void swap(int *a, int *b)<br>{<br>    int t = *a;<br>    *a = *b;<br>    *b = t;<br>}<br><br>// function to find the partition position<br>int partition(int array[], int low, int high)<br>{<br><br>    // select the rightmost element as pivot<br>    int pivot = array[high];<br><br>    // pointer for greater element<br>    int i = (low - 1);<br><br>    // traverse each element of the array<br>    // compare them with the pivot<br>    for (int j = low; j &lt; high; j++)<br>    {<br>        if (array[j] &lt;= pivot)<br>        {<br><br>            // if element smaller than pivot is found<br>            // swap it with the greater element pointed by i<br>            i++;<br><br>            // swap element at i with element at j<br>            swap(&amp;array[i], &amp;array[j]);<br>        }<br>    }<br><br>    // swap the pivot element with the greater element at i<br>    swap(&amp;array[i + 1], &amp;array[high]);<br><br>    // return the partition point<br>    return (i + 1);<br>}<br><br>void quickSort(int array[], int low, int high)<br>{<br>    if (low &lt; high)<br>    {<br><br>        // find the pivot element such that<br>        // elements smaller than pivot are on left of pivot<br>        // elements greater than pivot are on right of pivot<br>        int pi = partition(array, low, high);<br><br>        // recursive call on the left of pivot<br>        quickSort(array, low, pi - 1);<br><br>        // recursive call on the right of pivot<br>        quickSort(array, pi + 1, high);<br>    }<br>}<br><br>void arraySorter(int *arr, int size)<br>{<br>    quickSort(arr, 0, size - 1);<br>}</pre><p>Now it seems with -O2 flag we can sort integers faster than plain Javascript! Now C code is like 2 times faster. That&#39;s amazing!</p><blockquote><em>C time: 156.8 JS time: 271.5</em></blockquote><p>Is Wasm faster in your browser? <a href="https://canbax.github.io/wasm0/">Try and see</a> now. All the <a href="https://github.com/canbax/wasm0">source codes</a> are available under an MIT license.</p><p><em>Originally published at </em><a href="https://dev.to/canbax/can-webassembly-make-your-web-apps-faster-378j"><em>https://dev.to/canbax/can-webassembly-make-your-web-apps-faster-378j</em></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=100844a503d0" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Save the world while browsing the internet!]]></title>
            <link>https://canbax.medium.com/save-the-world-while-browsing-the-internet-937c4a22f2ec?source=rss-5812122afdba------2</link>
            <guid isPermaLink="false">https://medium.com/p/937c4a22f2ec</guid>
            <category><![CDATA[ecosia]]></category>
            <category><![CDATA[brave-browser]]></category>
            <category><![CDATA[ocean-hero]]></category>
            <dc:creator><![CDATA[Yusuf CANBAZ]]></dc:creator>
            <pubDate>Mon, 20 Jun 2022 13:56:15 GMT</pubDate>
            <atom:updated>2023-04-09T08:23:46.573Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/0*PHuqmtJbrFa5HWmO.jpg" /></figure><p><a href="https://dev.to/canbax/internette-gezerken-dunyayi-kurtar-38ne">Türkçe çevirisi</a><br> With the widespread use of the Internet, people started to browse this wired/wireless network that surrounds the world almost every day. When I was little, I thought the internet was Google 😁 but when I grew up and became an engineer, I realized that I was surfing the internet thanks to programs called “internet browser” and websites called “search engines”.</p><p>Programs such as Google Chrome, Safari, Microsoft Edge, Mozilla Firefox, Opera … are popular internet browsers.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/880/1*QWiBYgAZOYov0PNA5NWLUA.png" /></figure><p>Internet sites such as Google, Bing, Baidu, Yahoo!, Yandex … are common search engines.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/1*jmy1D4uOB8266k44PRz70Q.jpeg" /></figure><p>Although most internet browsers and search engines (all of the examples above) are free, they can earn billions of dollars by advertising. They achieve this by keeping records of their users’ searches and personal information, using various algorithms. For example, Google generated <a href="https://www.statista.com/statistics/266206/googles-annual-global-revenue/">more than $200 billion</a> in ad revenue in 2021.</p><p><a href="https://www.ecosia.org">Ecosia</a> is a search engine just like Google. Unlike Google, Ecosia claims to spend all its net profits on planting trees. I have no affiliation with this company and I cannot give any guarantee of reliability. I have been using Ecosia for about 1–2 years and I am generally satisfied. I trust Ecosia because they have a transparent structure, and <a href="https://blog.ecosia.org/ecosia-financial-reports-tree-planting-receipts/">financial reports</a>, and <a href="https://twitter%20.com/Ecosia">social media posts</a> sounded convincing to me.</p><h3>Why do I use Ecosia?</h3><ul><li>It does not collect personal data. Ecosia does not keep logs of previous searches like Google. It returns results exactly based on the words I’m looking for. This allows you to both protect your personal data and find more relevant results.</li><li>It shows a lot fewer ads.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/880/1*-1CjkaewBUdnrFVilQTAAw.png" /></figure><ul><li>You only see what’s more relevant, not what’s more popular, as you search based on the entered text. Google’s <a href="https://en.wikipedia.org/wiki/PageRank">famous algorithm named PageRank</a> aims to top the already popular results.</li></ul><h3>Is it really better than all-mighty GOOGLE?</h3><p>Finally, there may be parties where Google excels. For example, if you want to buy something, Google provides much better access to the products you want to buy. Google’s map service is pretty good too. Of course, sometimes Google can show more relevant results.</p><p>Finally, there is Ecosia’s <a href="https://info.ecosia.org/mobile">mobile application</a>, that is, an internet browser that works on mobile devices. I used a little bit, but frankly, I didn’t use it because I like other browsers more.</p><p>You can also record the number of calls you make with Ecosia. I made more than 1400 searches with my phone and more than 2700 searches with my computer. Honestly, I’m not sure how accurate these numbers are.</p><h3>OceanHero</h3><p>You can customize what you see when you open a blank tab in your internet browser. <a href="https://oceanhero.today/">OceanHero</a> claims to be showing you ads and clearing plastic waste from the oceans with ad revenue.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/880/1*3hrWeMfwJQ8_d_Rv08WeDw.png" /></figure><p>They explained how it works with <a href="https://www.youtube.com/watch?v=Un3kQ0abA7M">a 1-minute short and explanatory video</a>.</p><p>It also offers <a href="https://oceanhero.today/search">a search engine service</a> on OceanHero. I can’t comment much since I don’t use it much, but I can say that the ocean mode (“Ocean Mode”) looks very nice.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/880/1*qDXHker993zTCkOSnbUrXQ.jpeg" /></figure><h3>Brave</h3><p>This time I will talk about a tool that has nothing to do with ecology. <a href="https://brave.com">Brave</a> is an internet browser. Although it does not directly contribute to the physical livability of our planet, Brave makes a great contribution to the livability of digital life thanks to the great importance it gives to privacy. Recently, giant companies such as Google, Facebook and Microsoft have also brought privacy to their agenda and started to make more effort in this regard.</p><h3>Why am I using Brave?</h3><p>Brave, which I use on my tablet, claims to save 2 GB of data and 1 hour of time in 1–2 years.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/880/1*RNCITP0WpYtcg74ccyU7OA.jpeg" /></figure><p>Brave, which I use on my phone, claims to save 3.8 GB of data and 1 hour of time.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/720/1*16xMOBJU5pVm7-8WmQ6yKw.jpeg" /></figure><p>If you’re using YouTube, I’m pretty sure you’ll save a lot more time. Rather than using YouTube’s official app, I use YouTube with Brave because I haven’t watched YouTube ads for years. (Yes, they are wasting money on YouTube Premium :)</p><ul><li>Faster. Is it really even faster than Google Chrome? I think yes. I didn’t make very serious measurements, but it is quite normal that it is faster as it blocks ads and trackers. When using Brave, I clearly feel that it is faster than Google Chrome, but of course, engineers should not act based on their feelings. Brave claims it can be <a href="https://brave.com/compare/chrome/performance/">up to 3x faster</a> than Google Chrome.</li><li>Open source code. Even if you’re not going to read and rewrite the code, it’s a nice opportunity to be able to do it or have other developers do it.</li><li>You can earn “BAT” token. If you want, you can get the “BAT” crypto-asset by being exposed to some advertisements with Brave. Brave claims that the ads shown are privacy-respecting. I didn’t get much use out of it as I was tempted to not see any ads.</li></ul><p>Finally, let’s give some interesting information about Brave. Brave’s CEO <a href="https://en.wikipedia.org/wiki/Brendan_Eich">Brendan Eich</a> is the creator of the JavaScript language and co-founder of Mozilla.</p><p>Finally, I have not received any financial support from any of the companies mentioned here. I am not working with anyone. I cannot make any warranties about Brave, OceanHero, or Ecosia. I just like and use them.</p><p><em>Originally published at </em><a href="https://dev.to/canbax/save-the-world-while-browsing-the-internet-kko"><em>https://dev.to</em></a><em> on June 20, 2022.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=937c4a22f2ec" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Visualizing TigerGraph & Neo4j databases with “Davraz”]]></title>
            <link>https://canbax.medium.com/visualizing-tigergraph-neo4j-databases-with-davraz-d20df82d34d3?source=rss-5812122afdba------2</link>
            <guid isPermaLink="false">https://medium.com/p/d20df82d34d3</guid>
            <category><![CDATA[neo4j-graph-database]]></category>
            <category><![CDATA[information-visualization]]></category>
            <category><![CDATA[information-visualiation]]></category>
            <category><![CDATA[graph]]></category>
            <category><![CDATA[neo4j]]></category>
            <dc:creator><![CDATA[Yusuf CANBAZ]]></dc:creator>
            <pubDate>Sun, 12 Jun 2022 11:13:34 GMT</pubDate>
            <atom:updated>2023-04-09T08:38:02.672Z</atom:updated>
            <content:encoded><![CDATA[<p>In this post, I will introduce <a href="https://github.com/canbax/davraz">Davraz</a>, a software I created. Firstly, it is deployed on <a href="https://canbax.github.io/davraz/">https://canbax.github.io/davraz/</a>. So you can see it in action now.</p><p>This post aims to introduce graph visualization to non-technical people.</p><h3>Introduction</h3><p><em>Davraz</em> is a <a href="https://en.wikipedia.org/wiki/Graph_database">graph database</a> visualizer. Currently, it supports only <a href="https://www.tigergraph.com/">TigerGraph</a> and <a href="https://neo4j.com/">Neo4j</a>.</p><h3>Background</h3><p>I created <em>Davraz</em> for <a href="https://tigergraph2020.devpost.com/">TigerGraph 2020 Graphathon</a>. (It got 1st Place Reward YAAAY!) It is a tool for visualizing your <a href="https://www.tigergraph.com/">TigerGraph</a> and <a href="https://neo4j.com/">Neo4j</a> databases. TigerGraph and Neo4j are <a href="https://en.wikipedia.org/wiki/Graph_database">graph databases</a>. Usually, data is stored in SQL databases. Graph databases are a fairly new way to store data.</p><h3>Why Graph Database?</h3><p>In SQL databases, if your data is highly connected, querying data might be time-consuming (due to <a href="https://www.w3schools.com/sql/sql_join.asp">join</a> operations). In this case, using a graph database might considerably decrease execution time. This depends on how the graph database is implemented at its core. <a href="https://www.w3schools.com/SQL/sql_ref_index.asp">Creating an index</a> in SQL database will also help you execute faster. At its core, creating an index is actually like creating a graph data structure. So we can say SQL is also benefiting from graphs for faster execution.</p><h3>Why Graph Visualization?</h3><p>Visualizing data is one of the most effective ways of understanding data. Graphs are a pretty generic data structure and almost any data can be defined as a graph. So visualizing graphs can be a very generic and effective way to understand any data. Graph visualization can be used for insightful analysis and interpretation.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/880/1*uvz376WLoN5AJ0_LsI6N0g.jpeg" /></figure><h3>Set-up for TigerGraph</h3><p>From <a href="https://tgcloud.io/">https://tgcloud.io/</a> you can jump-start creating your own free TigerGraph database. It is very easy, you just need to click “next” etc… But you can find <a href="https://medium.com/swlh/getting-started-with-tigergraph-3-0-4aac0ca4fb3d">more guidance</a> on the Internet. For visualization, you can also use their embedded system called <em>“Graph Studio”</em>.</p><p>After you have a running TigerGraph instance, you can start visualizing it on <em>Davraz</em>. If you open <a href="https://canbax.github.io/davraz/">https://canbax.github.io/davraz/</a>, at first you should enter database configuration data.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/880/1*jhIYNY5N45MvbWqYCVhUJQ.png" /></figure><p>You need to provide “Database URL”, “Graph Name”, “Database username”, and “Database password” fields. After that, if you click to “Generate Token” button, you are ready to go.</p><p>You do <strong>NOT</strong> need to change “Proxy Server URL” if you don’t want to use your own proxy.</p><p>If your “Database URL” is wrong or if the TigerGraph instance is not active, you might get an error like the one below</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/549/1*eBoBjmRZRZFdr0JR7wNd6Q.png" /></figure><p>You might get errors like the below if you don’t provide the correct username, password, or graph name.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/548/1*PCjEJvMqOkWt9_1XRT80Rg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/555/1*OnuJjGoLhVpENQGAA6DZSA.png" /></figure><p>If there is no error, you are good to GO! Below is a video showing how it works. Also, note that certain operations might require <strong>“database secret”</strong>. So you should provide or generate the secret of your TigerGraph database as well.</p><p><a href="https://user-images.githubusercontent.com/8426741/167489419-1a5ef6dc-1b16-4ce9-9cfb-e50b043a473c.mp4">https://user-images.githubusercontent.com/8426741/167489419-1a5ef6dc-1b16-4ce9-9cfb-e50b043a473c.mp4</a></p><p>Also, note that the proxy server ( <a href="https://tiger-api.herokuapp.com/">https://tiger-api.herokuapp.com/</a>) might be down for some reason. (It is a free instance) So just refreshing it might help in some cases.</p><h3>Set-up for Neo4j</h3><p>If you use Davraz from the GitHub deployment ( <a href="https://canbax.github.io/davraz/">https://canbax.github.io/davraz/</a>), you need to serve your Neo4j API from HTTPS. This is because you cannot communicate with an HTTP server from an HTTPS server. Setting up an HTTPS server and setting up the SSL policy seems a bit tedious for me. For this reason, I will run a local version of Davraz on my own machine with HTTP. And also a local Neo4j server again from my own machine with HTTP. Inside Neo4j settings, I set dbms.security.auth_enabled=false so I can make HTTP requests and get a response without providing any username and password.</p><p>Below are my settings to connect to my local Neo4j instance. The database URL is <a href="http://localhost:7474/db/data/transaction/commit"><strong>http://localhost:7474/db/data/transaction/commit</strong></a>. A username and password are not necessary, they can be empty.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/738/1*rxGotRdgvnE8cwh-8Eq4BQ.png" /></figure><p>From the below video, you can see how you can visualize Neo4j data.</p><p><a href="https://user-images.githubusercontent.com/8426741/173191229-3e1d5d43-0221-4ba1-a4ce-d0635d36fce4.mp4">https://user-images.githubusercontent.com/8426741/173191229-3e1d5d43-0221-4ba1-a4ce-d0635d36fce4.mp4</a></p><p>Here you might see a strange view if the styles are not the default styles. See the below image for an example.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/880/1*8xWl-kyLUlXv2Uef7DRFAQ.png" /></figure><p>To use default graph styles, you can click to<em>”File”</em>&gt;<em>”Clear Graph Style”</em>.</p><p>Like TigerGraph, Neo4j also provides free cloud instances. <a href="https://neo4j.com/cloud/platform/aura-graph-database/">Neo4j AuraDB</a> looks very cool and nice as well. Up to 50k nodes and 175k edges, it is free. Also, it has a nice visualizer called <em>“Bloom”</em>.</p><h3>Features</h3><p>From <em>“File”</em> menu, you can save a graph as JSON file, load back from the file. You can save only the selected elements. You can export graph as an image. You can load different <a href="https://js.cytoscape.org/#style">graph styles</a>.</p><p>From <em>“Edit”</em> menu, you can delete selected elements, hide selected elements, show all the previously hidden elements and observe a history of graph states.</p><p>From <em>“Data”</em> menu, you can clear all the data or bring a sample data.</p><p>From <em>“Layout”</em> menu, you can run an incremental or randomized layout. There are many different layout types but the default is <a href="https://github.com/iVis-at-Bilkent/cytoscape.js-fcose">fCoSE</a> algorithm.</p><p>From <em>“Highlight”</em> menu, elements can be emphasized to distinguish from others.</p><p>From <em>“Compound”</em> menu, compound elements can be created or removed.</p><p>From <em>“Table”</em> menu, whole data or a part of the existing data can be shown as table(s).</p><p>From <em>“Cluster”</em> menu, you can run “Markov Clustering” algorithm or cluster degree-1 nodes.</p><p><em>Originally published at </em><a href="https://dev.to/canbax/visualizing-tigergraph-neo4j-databases-with-davraz-296d"><em>https://dev.to</em></a><em> on June 12, 2022.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d20df82d34d3" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Son Durak]]></title>
            <link>https://canbax.medium.com/son-durak-70f353bc5011?source=rss-5812122afdba------2</link>
            <guid isPermaLink="false">https://medium.com/p/70f353bc5011</guid>
            <category><![CDATA[şiir]]></category>
            <category><![CDATA[ölüm]]></category>
            <category><![CDATA[poem]]></category>
            <category><![CDATA[death]]></category>
            <dc:creator><![CDATA[Yusuf CANBAZ]]></dc:creator>
            <pubDate>Thu, 16 Dec 2021 18:36:57 GMT</pubDate>
            <atom:updated>2021-12-16T18:40:08.771Z</atom:updated>
            <content:encoded><![CDATA[<p>Hiçbir şeyim yok, sadece benim</p><p>Ne yiyecek bir dilim ekmeğim</p><p>Ne bir tane arkadaşım</p><p>İşte burada, sadece benim</p><p>Ne istediklerimden herhangi biri,</p><p>Ne istemediklerimden herhangi biri</p><p>Burada hiçbir şey yok ki</p><p>Burada sadece birisi, o da kendi</p><p>İşte burada yokluk ve hiçlik</p><p>Hani nerede o çok methedilen insanlık</p><p>Az dinleyip çok konuşan insancık</p><p>Gel dinleyelim biraz hikayecik</p><p>Umutsuz vaka burada o boş lafların</p><p>Hadi madem şimdi göster tesirin</p><p>Ki görelim bir nebze yararın</p><p>İşte al sana yalan olan masalın</p><p>Ordayım ki ben tek başıma,</p><p>Ne gelen ne giden benim yanıma,</p><p>Ben ordayım sadece, herkes başka yanda</p><p>Sıra sanki gelmeyecek onlara</p><p>Neredesin ki kimi gelmiş kimi gidiyor</p><p>Arkasına bakamadan gidiyor</p><p>Eyvallah diyemeden ayrılıyor</p><p>Bir daha dönmeyerek kayboluyor</p><p>Garip orada ki artık son durak</p><p>Dönüşü yok ki, gidişi zaten aksak</p><p>Çıkmaz sokakta durmak yasak</p><p>Orası ölüm ki orası son durak</p><p>Yusuf Sait Canbaz</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=70f353bc5011" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Kuran’da çelişki, hata ve eleştiriler hakkında]]></title>
            <link>https://canbax.medium.com/kuranda-%C3%A7eli%C5%9Fki-hata-ve-ele%C5%9Ftiriler-9da3ccbae2d7?source=rss-5812122afdba------2</link>
            <guid isPermaLink="false">https://medium.com/p/9da3ccbae2d7</guid>
            <category><![CDATA[kuran]]></category>
            <category><![CDATA[i̇slam]]></category>
            <category><![CDATA[islam]]></category>
            <category><![CDATA[ateizm]]></category>
            <category><![CDATA[deizm]]></category>
            <dc:creator><![CDATA[Yusuf CANBAZ]]></dc:creator>
            <pubDate>Sun, 28 Nov 2021 19:38:48 GMT</pubDate>
            <atom:updated>2021-12-11T05:04:22.817Z</atom:updated>
            <content:encoded><![CDATA[<p>Bu yazıda ayet ayet ilerleyerek Kuran’la ilgili bazı iddilara kısa ve net cevaplar vermeye çalışacağım. Bu yazıyı Kuran’ı okuyup anlamaya çalışan ve konunun <strong>uzmanı olmayan</strong> bir insan olarak yazıyorum.</p><h3>İçindekiler</h3><p>∘ <a href="#3e50">Kehf 18/86 Güneşin çamurlu bir suda batması</a><br> ∘ <a href="#467a">Mülk 67/5 Meteor ya da yıldızların şeytanlara atılması</a><br> ∘ <a href="#ee82">Bakara 2/29 Önce dünyanın sonra evrenin geri kalanının yaratılması</a><br> ∘ <a href="#fed3">Kaf 50/38 Evrenin toplamda 6 günde yaratıldığını söylemekte</a><br> ∘ <a href="#111e">Sebe 34/9 Gökyüzünün düşebileceğini zannetmekte</a><br> ∘ <a href="#d063">Şura 42/33 Gemiler rüzgarsız gitmez sanıyor</a><br> ∘ <a href="#86be">Bakara 2/22 Dünyanın düz olduğunu, gökyüzünün tavan olduğunu söylüyor</a><br> ∘ <a href="#6b9c">Rahman 55/33 Bu tavandan kimse kaçamaz diyor</a><br> ∘ <a href="#842f">Mülk 67/5 Yıldızlar atmosferin en yakın yerindedir</a><br> ∘ <a href="#1baf">Nahl 16/79 Kuşlar boşlukta Allah tutuyor diyo</a><br> ∘ <a href="#2a23">Fussilet 41/11 Duman ve gazlar dünyanın kendi isteğiyle varmış, evren dumandan oluşmuş</a><br> ∘ <a href="#24e5">Araf 7/54 Gece olduğunda Allah tavana örtü örtüyor</a><br> ∘ <a href="#3e09">Şems 91/1–2 Güneş ve ay aynı yörüngede dönüyor</a><br> ∘ <a href="#72f2">Tevbe 9/30 Yahudiler, Üzeyir, Allah’ın oğludur dedi, Tevrat’ta Üzeyir diye biri yok</a><br> ∘ <a href="#5412">Biyolojideki evrim teorisi ile Kuran Çelişir mi?</a><br> ∘ <a href="#caf1">Tarık 86/5-7 Sperm kaburga arasından oluşuyor yazıyor</a><br> ∘ <a href="#94ac">Nahl 16/66 Süt ineklerin memelerinde değil karınlarında oluşur</a><br> ∘ <a href="#a7e8">Enam 6/38 Yaşayan her canlı topluluk kurmuştur</a><br> ∘ <a href="#2272">Bakara 2/72–73 Ölenler biftekle yeniden hayata döndürülebilir</a><br> ∘ <a href="#08a0">Rad 13/2 Güneşi ve ayı Allah tutar</a><br> ∘ <a href="#f8dc">Rahman 55/19–22 Denizler birbirine karışmıyor ve tatlı suda inci ve mercan yetişebilir diyor</a><br> ∘ <a href="#0058">Dağlar sabittir, zelzeleler ve depremlerden korumak için diktik</a><br> ∘ <a href="#2d91">Maide 5/116 Hıristiyanlar Meryem’i ilah edinmediği halde öyle diyor</a><br> ∘ <a href="#5d9e">Tekvîr 81/2 Yıldızların düşebileceğini söyler</a><br> ∘ <a href="#420c">Nisa 4/34 Kadınları dövün</a><br> ∘ <a href="#490e">Talak 65/4 Kızlar ergenlikten önce evlenebilir mi?</a><br> ∘ <a href="#8628">Nuh Tufanı</a><br> ∘ <a href="#f890">Kuran’da Hz Muhammed’in özel hayatı ile ilgili kaç ayet var?</a><br> ∘ <a href="#14ae">Kuran akıl etmeye karşı mı?</a><br> ∘ <a href="#7c14">Her meal ve tefsir farklı mı?</a><br> ∘ <a href="#aecf">Miras paylaşımınında matematiksel hata</a><br> ∘ <a href="#f088">Bağlamından koparılan ifadelerle yapılan iddialar</a><br> ∘ <a href="#24d1">Meryem 19/28 Kuran Meryem’leri karıştırdı mı?</a><br> ∘ <a href="#2d7b">Nebe 78/33 Kuran cennette tomurcuk göğüslü kızlar vaat ediyor mu?</a><br> ∘ <a href="#82f0">Bakara 2/223 Kuran kadına tarla diyor</a><br> ∘ <a href="#261d">Kuran Lut kavminden önce eşcinsellik yoktu diyor</a></p><h4><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=18&amp;ayet=86">Kehf 18/86</a> Güneşin çamurlu bir suda batması</h4><blockquote>حَتّٰٓى اِذَا بَلَغَ مَغْرِبَ الشَّمْسِ وَجَدَهَا تَغْرُبُ ف۪ي عَيْنٍ حَمِئَةٍ وَوَجَدَ عِنْدَهَا قَوْمًاۜ قُلْنَا يَا ذَا الْقَرْنَيْنِ اِمَّٓا اَنْ تُعَذِّبَ وَاِمَّٓا اَنْ تَتَّخِذَ ف۪يهِمْ حُسْنًا</blockquote><blockquote>Güneşin battığı yere varınca, onu siyah balçıklı bir su gözesinde batar (gibi) buldu. Orada (kâfir) bir kavim gördü. “Ey Zülkarneyn! Ya (onları) cezalandırırsın ya da haklarında iyilik yolunu tutarsın” dedik.</blockquote><p>Diyanet İşleri Meali (Yeni)</p><p>Evvela bir kitapta yazılan herşeyin gerçek anlam kullanıp hiç mecaz anlam içermemesini beklemek pek mantıklı değil. Bu ayette bahsedilen şey kısaca güneşin batarken bir suyun içine girermiş gibi görülmesi olabilir. Aşağıdaki resimdeki gibi bir durumu tasvir ediyor olabilir.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/678/1*OCkns6ouBIus9wglX8iVqQ.jpeg" /></figure><p>İkinci olarak Kuran tefsirlerinin, meallerinin hiçbiri bunu iddia etmezken, “Kuran bunu iddia ediyor” demek de mantıksız.</p><h4><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=67&amp;ayet=5">Mülk 67/5</a> Meteor ya da yıldızların şeytanlara atılması</h4><blockquote>وَلَقَدْ زَيَّنَّا السَّمَٓاءَ الدُّنْيَا بِمَصَاب۪يحَ وَجَعَلْنَاهَا رُجُومًا لِلشَّيَاط۪ينِ وَاَعْتَدْنَا لَهُمْ عَذَابَ السَّع۪يرِ</blockquote><blockquote>Andolsun biz, en yakın göğü kandillerle donattık. Onları şeytanlara atılan taşlar yaptık ve (ahirette de) onlara alevli ateş azabını hazırladık.[552]*</blockquote><p>Diyanet İşleri Meali (Yeni)</p><p>Öncelike burada bilimsel açıdan tanımlanamayan, gözlemlenemeyen bir öğeden, “şeytan”dan bahsediyor. Burada çelişki/hata bulmak için evvela “şeytan”ı gözlemlemek gerekiyor. Dolayısıyla buradan çelişki ya da hata bulmak mümkün değil. Ayrıca bir mecaz anlam da olabilir.</p><h4><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=2&amp;ayet=29">Bakara 2/29</a> Önce dünyanın sonra evrenin geri kalanının yaratılması</h4><blockquote>هُوَ الَّذ۪ي خَلَقَ لَكُمْ مَا فِي الْاَرْضِ جَم۪يعًا ثُمَّ اسْتَوٰٓى اِلَى السَّمَٓاءِ فَسَوّٰيهُنَّ سَبْعَ سَمٰوَاتٍۜ وَهُوَ بِكُلِّ شَيْءٍ عَل۪يمٌ۟</blockquote><blockquote>O, yeryüzünde olanların hepsini sizin için yaratan, sonra göğe yönelip onları yedi gök hâlinde düzenleyendir. O, her şeyi hakkıyla bilendir.</blockquote><p>Diyanet İşleri Meali (Yeni)</p><p>Görüldüğü gibi ayette yeryüzündeki herşeyi yaratıp ondan sonra göğü düzenlemekten bahsediyor. İddia edildiği gibi “<strong>sonradan göğü yaratma</strong>” yok. Yeryüzündeki yaratma için خَلَقَ (halaga) ifadesi kullanılıyor. Gök için ise düzenleme manasına gelen فَسَوّٰيهُنَّ (fesevvahunne) kullanılıyor. Aşağıdaki resimde kelime kelime manaları görebilirsiniz.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tbjlp4NKbPAkvoQ24bzR0g.png" /></figure><p>İkinci olarak <em>yaratma</em> خَلَقَ (halaga) ifadesi Kuran’da yoktan var etme anlamında kullanılmamaktadır. Buna birçok örnek verilebilir ancak ben sadece insanın çamurdan yaratılmasıyla ilgili birkaç ayeti örnek veriyorum. <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=6&amp;ayet=2">Enam 6/2</a>, <a href="https://www.kuranmeali.com/AyetKarsilastirma.php?sure=7&amp;ayet=12">Araf 7/12</a>, <a href="https://www.kuranmeali.com/AyetKarsilastirma.php?sure=17&amp;ayet=61">İsra 17/61</a>, <a href="https://www.kuranmeali.com/AyetKarsilastirma.php?sure=23&amp;ayet=12">Müminun 23/12</a>, <a href="https://www.kuranmeali.com/AyetKarsilastirma.php?sure=32&amp;ayet=7">Secde 32/7</a>, <a href="https://www.kuranmeali.com/AyetKarsilastirma.php?sure=37&amp;ayet=11">Saffat 37/11</a>, <a href="https://www.kuranmeali.com/AyetKarsilastirma.php?sure=38&amp;ayet=71">Sad 38/71</a>, <a href="https://www.kuranmeali.com/AyetKarsilastirma.php?sure=38&amp;ayet=76">Sad 38/76</a> ayetlerinde<em> “Allah çamurdan yaratmıştır” </em>diye geçer. Burada bahsedilen ayetlerin hepsinde خَلَقَ (halaga) ifadesi geçmekte ve bu yaratılış yoktan değil, toprak ya da çamurdan olmaktadır. Kuran’da yoktan var ediş için genelde فَطَرَ<em> (fetara)</em> ve<em> </em>بَدَاَ <em>(bedea)</em> ifadeleri kullanılır.</p><h4><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=50&amp;ayet=38">Kaf 50/38</a> Evrenin toplamda 6 günde yaratıldığını söylemekte</h4><blockquote>وَلَقَدْ خَلَقْنَا السَّمٰوَاتِ وَالْاَرْضَ وَمَا بَيْنَهُمَا ف۪ي سِتَّةِ اَيَّامٍۗ وَمَا مَسَّنَا مِنْ لُغُوبٍ</blockquote><blockquote>Andolsun, gökleri, yeri ve ikisi arasında bulunanları altı günde (altı evrede) yarattık. Bize bir yorgunluk da dokunmadı.</blockquote><p>Diyanet İşleri Meali (Yeni)</p><p>Gün kelimesini bizim dünyada aşina olduğumuz <em>24 saat</em> gibi anlamak pek mantıklı bir yaklaşım değil. Arapçada bu kelimenin birinci anlamı aşina olduğumuz 24 saatlik zaman dilimi ancak bu kelimenin devir, evre, dönem gibi manaları da var. Tefsir ve mealler de bu şekilde anlamlandırmış. Ayrıca insanların saat, saniye gibi kavramları kullanmaya başlaması insanlık için nispeten yeni bir gelişmedir. Bildiğimiz anlamda saat <a href="https://theconversation.com/a-brief-history-of-telling-time-55408">18. yüzyılda ortaya çıkmıştır</a>. Dolayısıyla “saat” kavramının (3600 saniye) henüz insanlar tarafından kullanılmadığı bir zamanda, 1400 yıl önce, bir kitabın evrenin 144 saatte yaratıldığını iddia etmesi zaten kavramsal olarak da mümkün değildir.</p><h4><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=34&amp;ayet=9">Sebe 34/9</a> Gökyüzünün düşebileceğini zannetmekte</h4><blockquote>أَفَلَمْ يَرَوْا إِلَى مَا بَيْنَ أَيْدِيهِمْ وَمَا خَلْفَهُم مِّنَ السَّمَاء وَالْأَرْضِ إِن نَّشَأْ نَخْسِفْ بِهِمُ الْأَرْضَ أَوْ نُسْقِطْ عَلَيْهِمْ كِسَفًا مِّنَ السَّمَاء إِنَّ فِي ذَلِكَ لَآيَةً لِّكُلِّ عَبْدٍ مُّنِيبٍ</blockquote><blockquote>Onlar, önlerindeki ve arkalarındaki (kendilerini dört bir yandan kuşatan) göğe ve yere bakmadılar mı? Eğer dilersek onları yere geçirir veya gökten üzerlerine parçalar düşürürüz. Bunda, Rabbine yönelen her kul için bir ibret vardır.</blockquote><p>Diyanet İşleri Meali (Yeni)</p><p>Ayetten gökten bazı cisimlerin düşebileceği bahsediliyor ki bu zaman zaman da olmuş. Komple göğün düşmesi zaten Kuran ilk indiği zamanda bile anlaşılmaz ve muğlak bir kavram olurdu. Aşağıda gösterildiği gibi kelime kelime anlamlandırmada da göğün değil <strong>gökten parçaların</strong> düşebileceği görülebilir.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/457/1*dMO9HlqMGKalGMtkPFc7Dg.png" /></figure><h4><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=42&amp;ayet=33">Şura 42/33</a> Gemiler rüzgarsız gitmez sanıyor</h4><blockquote>اِنْ يَشَاْ يُسْكِنِ الرّ۪يحَ فَيَظْلَلْنَ رَوَاكِدَ عَلٰى ظَهْرِه۪ۜ اِنَّ ف۪ي ذٰلِكَ لَاٰيَاتٍ لِكُلِّ صَبَّارٍ شَكُورٍۙ</blockquote><blockquote>O, dilerse rüzgârı durdurur da onlar denizin üstünde durakalırlar. Elbette bunda çok sabreden, çok şükreden herkes için ibretler vardır.</blockquote><p>Diyanet İşleri Meali (Yeni)</p><p>Ayette Allah’ın gönderdiği rüzgar kesilirse rüzgarla kolayca ve masrafsızca haraket eden gemilerin duracağından bahsediyor. “Rüzgar olmazsa kesinlikle geminin hareket edemeyeğini” söylemiyor. Zira geminin olduğu her devirde kürek çekerek, insan gücüyle gemiler hareket edebilmişler. Burada deniz taşımacılığında rüzgarın önemine vurgu yapılıyor da diyebiliriz.</p><h4><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=2&amp;ayet=22">Bakara 2/22</a> Dünyanın düz olduğunu, gökyüzünün tavan olduğunu söylüyor</h4><blockquote>اَلَّذ۪ي جَعَلَ لَكُمُ الْاَرْضَ فِرَاشًا وَالسَّمَٓاءَ بِنَٓاءًۖ وَاَنْزَلَ مِنَ السَّمَٓاءِ مَٓاءً فَاَخْرَجَ بِه۪ مِنَ الثَّمَرَاتِ رِزْقًا لَكُمْۚ فَلَا تَجْعَلُوا لِلّٰهِ اَنْدَادًا وَاَنْتُمْ تَعْلَمُونَ</blockquote><blockquote>O Rab ki, yeri sizin için bir döşek, göğü de (kubbemsi) bir tavan yaptı. Gökten su indirerek onunla, size besin olsun diye (yerden) çeşitli ürünler çıkardı. Artık bunu bile bile Allah’a şirk koşmayın.</blockquote><p>Diyanet Vakfı Meali</p><p>Öncelikle <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=2&amp;ayet=22">Bakara 2/22 bağlantısında</a> görüleceği gibi çoğu mealde <em>“tavan” </em>sözcüğü kullanılmamaktadır. Kasıtlı olarak “<em>tavan</em>” sözcüğü kullanan bir mealden alıntı yapıyorum. Geçen ifadelerden dünyanın düz olduğunu çıkarmak biraz zorlama bir yorum olacaktır. Kuran’daki <em>“yeryüzünü yaydık”</em> gibi ifadelerden de biraz zorlama yaparak dünyanın düz olduğunu iddia edenler olmuştur. <em>“Yeryüzüzün yayılması”</em> ve <em>“göğün tavan olması”</em> ifadelerinden ile dünyanın şekli için bir çıkarım yapmak pek mantıklı değil. Küre şeklinde bir cisim yüzeyinde de yayılma hareketleri gerçekleşebilir. Bir binanın tavanı kubbe ya da yarım küre şeklinde olabilir.</p><h4><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=55&amp;ayet=33">Rahman 55/33</a> Bu tavandan kimse kaçamaz diyor</h4><blockquote>يَا مَعْشَرَ الْجِنِّ وَالْاِنْسِ اِنِ اسْتَطَعْتُمْ اَنْ تَنْفُذُوا مِنْ اَقْطَارِ السَّمٰوَاتِ وَالْاَرْضِ فَانْفُذُواۜ لَا تَنْفُذُونَ اِلَّا بِسُلْطَانٍۚ</blockquote><blockquote>Ey cin ve insan toplulukları! Göklerin ve yerin uçlarından bucaklarından geçip gitmeye gücünüz yeterse geçip gidin. Büyük bir güç olmadıkça geçip gidemezsiniz.</blockquote><p>Diyanet İşleri Meali (Yeni)</p><p>Ayetteki <em>“büyük bir güç olmadıkça”</em> ifadesi bir koşul karşılandığında yapılabileceğini açıkça ifade etmiş.</p><h4><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=67&amp;ayet=5">Mülk 67/5</a> Yıldızlar atmosferin en yakın yerindedir</h4><blockquote>وَلَقَدْ زَيَّنَّا السَّمَٓاءَ الدُّنْيَا بِمَصَاب۪يحَ وَجَعَلْنَاهَا رُجُومًا لِلشَّيَاط۪ينِ وَاَعْتَدْنَا لَهُمْ عَذَابَ السَّع۪يرِ</blockquote><blockquote>Andolsun biz, en yakın göğü kandillerle donattık. Onları şeytanlara atılan taşlar yaptık ve (ahirette de) onlara alevli ateş azabını hazırladık.[552]*</blockquote><p>Diyanet İşleri Meali (Yeni)</p><p>Evvela burada yıldız kelimesi kullanılmıyor. Kandil ya da lambaya tekabül eden bir kelime kullanılıyor. Aşağıdaki kelime kelime çeviride görülebilir.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/952/1*sN_HN2se8PyssyEy2ZWB4g.png" /></figure><p>İkinci olarak ise yıldızların konumu hakkında bir ifade yok. Yıldızların yakın gökte olduğu iddia edilmiyor. Yakın göğün ışıklar ile süslendiğinden bahsediyor.</p><h4><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=16&amp;ayet=79">Nahl 16/79 </a>Kuşlar boşlukta Allah tutuyor diyo</h4><blockquote>اَلَمْ يَرَوْا اِلَى الطَّيْرِ مُسَخَّرَاتٍ ف۪ي جَوِّ السَّمَٓاءِۜ مَا يُمْسِكُهُنَّ اِلَّا اللّٰهُۜ اِنَّ ف۪ي ذٰلِكَ لَاٰيَاتٍ لِقَوْمٍ يُؤْمِنُونَ</blockquote><blockquote>Göğün boşluğunda Allah’ın emrine boyun eğdirilerek uçuşan kuşlara bakmadılar mı? Şüphesiz bunda inanan bir toplum için âyetler (ibretler) vardır.</blockquote><p>Elmalılı Hamdi Yazır Meali</p><p>Öncelikle bazı meallerde <em>“boşluk”</em> kelimesi hiç geçmiyor. Kasıtlı olarak “<em>boşluk</em>” kelimesinin geçtiği bir mealden alıntı yapıyorum. <em>“boşluk”</em> kelimesinin geçtiği çoğu mealde ise<em> “göğün boşluğu”</em>, <em>“gök boşluğu”</em> gibi ifadeler kullanılıyor. Aşağıdaki kelime mealde görüleceği gibi kendi başına müstakil bir boşluktan değil göğün içindeki bir boşluktan bahsediliyor.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*plSt_FikznIJvynED9Y00Q.png" /></figure><h4><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=41&amp;ayet=11">Fussilet 41/11</a> Duman ve gazlar dünyanın kendi isteğiyle varmış, evren dumandan oluşmuş</h4><blockquote>ثُمَّ اسْتَوٰٓى اِلَى السَّمَٓاءِ وَهِيَ دُخَانٌ فَقَالَ لَهَا وَلِلْاَرْضِ ائْتِيَا طَوْعًا اَوْ كَرْهًاۜ قَالَتَٓا اَتَيْنَا طَٓائِع۪ينَ</blockquote><blockquote>Sonra duman hâlinde bulunan göğe yöneldi; ona ve yeryüzüne, “İsteyerek veya istemeyerek gelin” dedi. İkisi de, “İsteyerek geldik” dediler.</blockquote><p>Diyanet İşleri Meali (Yeni)</p><p>Mecazi bir anlatımla göğün ve yeryüzünün Tanrı’nın emirlerine uyduğu ifade edilmiş gibi.</p><p>İkinci olarak <a href="https://en.wikipedia.org/wiki/Big_Bang">bing bang teorisinde</a> gaz bulutlarından bahsedilir. Bu teoride çok yüksek sıcaklıklar, çok yüksek enerjiler ve yoğunluklar olduğu için neyin gaz bulutu ya da gaz gibi algılanacağı da zaten net değildir.</p><h4><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=7&amp;ayet=54">Araf 7/54</a> Gece olduğunda Allah tavana örtü örtüyor</h4><blockquote>اِنَّ رَبَّكُمُ اللّٰهُ الَّذ۪ي خَلَقَ السَّمٰوَاتِ وَالْاَرْضَ ف۪ي سِتَّةِ اَيَّامٍ ثُمَّ اسْتَوٰى عَلَى الْعَرْشِ يُغْشِي الَّيْلَ النَّهَارَ يَطْلُبُهُ حَث۪يثًاۙ وَالشَّمْسَ وَالْقَمَرَ وَالنُّجُومَ مُسَخَّرَاتٍ بِاَمْرِه۪ۜ اَلَا لَهُ الْخَلْقُ وَالْاَمْرُۜ تَبَارَكَ اللّٰهُ رَبُّ الْعَالَم۪ينَ</blockquote><blockquote>Muhakkak Rabbiniz o Allah’tır ki, gökleri ve yeri altı gün içinde yarattı. Sonra Arş üzerine istiva buyurdu. Geceyi gündüze örtüverir, onu çabuk çabuk arar, takip eder, güneşi de, ayı da, yıldızları da emrine musahhar olarak yaratmıştır. İyi bilmelidir ki, yaratmak da, emir de ona mahsustur. Alemlerin Rabbi olan Allah Teâlâ pek muazzemdir.</blockquote><p>Ömer Nasuhi Bilmen Meali</p><p>Öncelikle <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=7&amp;ayet=54">bahsi geçen ayetin</a> 39 Türkçe meali içinde sadece dördünde “<em>örtü”</em> kelimesi kullanılmaktadır. Kasıtlı olarak “<em>örtü” </em>kelimesinin geçtiği bir mealden alıntı yapıyorum. Zira örtü kelimesinin geçmediği meallerde zaten böyle bir iddiada bulunmak mümkün değil. İkinci olarak “<em>tavan</em>” kelimesi 39 mealin <strong>hiçbirinde </strong>geçmiyor. Ayet Allah’ın mutlak otorite sahibi olduğunu, geceyi gündüzle değiştirdiğini yahut gecenin ve gündüzün sürelerinin değiştiğini yahut iki manayı birden içeriyor olabilir.</p><h4><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=91&amp;ayet=1">Şems 91/1–2</a> Güneş ve ay aynı yörüngede dönüyor</h4><blockquote>وَالشَّمْسِ وَضُحٰيهَاۙۖ وَالْقَمَرِ اِذَا تَلٰيهَاۙۖ</blockquote><blockquote>Güneşe ve onun aydınlığına andolsun, Onu izlediğinde Ay’a andolsun,</blockquote><p>Diyanet İşleri Meali (Yeni)</p><p>Ayın güneş sistemi içerisinde yer aldığı ve sistemde yer alan tüm gök cisimleri gibi güneşi takip ettiği bilinen bir gerçektir. Dolayısıyla bu cisimler zaten uzaktan bakıldığı zaman “a<em>ynı yörünge</em>”de hareket ediyor.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_enh3aOVxfmzrylsq2MJ5g.jpeg" /></figure><p>Yukarıdaki kelime kelime çeviriden de görüleceği gibi yörüngeye işaret eden tek kelime ikinci ayetteki “تَلٰيهَاۙۖ” (taleha) ifadesidir. O da “<em>takip eden</em>”, “<em>izleyen</em>” manasına gelmektedir. Dolayısıyla tam olarak <strong>aynı yörüngede</strong> birbiri ardınca hareket etmek gibi bir mana zaten yoktur.</p><h4><a href="https://www.kuranmeali.com/AyetKarsilastirma.php?sure=9&amp;ayet=30">Tevbe 9/30</a> Yahudiler, Üzeyir, Allah’ın oğludur dedi, Tevrat’ta Üzeyir diye biri yok</h4><blockquote>وَقَالَتِ الْيَهُودُ عُزَيْرٌۨ ابْنُ اللّٰهِ وَقَالَتِ النَّصَارَى الْمَس۪يحُ ابْنُ اللّٰهِۜ ذٰلِكَ قَوْلُهُمْ بِاَفْوَاهِهِمْۚ يُضَاهِؤُ۫نَ قَوْلَ الَّذ۪ينَ كَفَرُوا مِنْ قَبْلُۜ قَاتَلَهُمُ اللّٰهُۘ اَنّٰى يُؤْفَكُونَ</blockquote><blockquote>Yahudiler, “Üzeyr, Allah’ın oğludur” dediler. Hıristiyanlar ise, “İsa Mesih, Allah’ın oğludur” dediler. Bu, onların ağızlarıyla söyledikleri (gerçeği yansıtmayan) sözleridir. Onların bu sözleri daha önce inkâr etmiş kimselerin söylediklerine benziyor. Allah, onları kahretsin. Nasıl da haktan çevriliyorlar!</blockquote><p>Diyanet İşleri Meali (Yeni)</p><p>Bu ayette <em>Üzeyir</em> diye geçen kişinin kim olduğu konusunda bir kesinlik yoktur. Müslüman âlimlerin çoğu Hz. Üzeyir’i yahudi geleneğindeki <em>Ezrâ</em> ile özdeşleştirmektedir. Burada Yahudilerin birinin ya da sadece bir kısmının Ezra’nın Allah’ın oğlu olduğu iddia ediliyor gibi. Bu konuda <a href="https://dergipark.org.tr/en/download/article-file/1311443">“Ezra (Üzeyir Peygamber) Karakteri ve Ezra’yı Tanrının Oğlu Kabul Eden Dustan Mezhebi Üzerine Bir İnceleme”</a> <em>Dustan </em>tarikatının Kuran’da bahsedilen yahudiler olduğunu iddia ediyor. Puta, ateşe, güneşe, ineğe, Hz. İsa’ya tapan insanları göz önüne aldığımızda tarihin bir döneminde bir yahudi grubunun <em>Üzeyir</em> ya da <em>Ezra</em> isimli birisini Allah’ın oğlu kabul etmesi pekte şaşılacak birşey değil.</p><p>Son olarak bir sonraki ayet <a href="https://www.kuranmeali.com/AyetKarsilastirma.php?sure=9&amp;ayet=31">Tevbe 9/31</a> “<em>hahamların ve rahiplerin rab edinildiklerinden</em>” bahsetmektedir. Burada kastedilen hahamların ve rahiplerin buyruklarının <strong>din içerisinde haram/helal</strong> kabul edilmesidir. Zaten bir insanın Allah’ın oğlu ya da ilah kabul edilmesinin sonucu budur.</p><h4><strong>Biyolojideki evrim teorisi ile Kuran Çelişir mi?</strong></h4><p>Kuran’daki bazı ayetlerin evrim teorisi ile çeliştiği iddia edilmektedir. Öncelikle konu hakkında detaylı inceleme için <a href="https://www.canertaslaman.com/2019/09/11/bir-musluman-evrimci-olabilir-mi/">Bir Müslüman Evrimci Olabilir mi?</a> kitabını okumanızı tavsiye ederim. Ben kısaca bir <strong>çelişkinin olmadığını </strong>yönünde argümanlarımı savunacağım.</p><p><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=7&amp;ayet=189">Araf 7/189</a> , <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=4&amp;ayet=1">Nisa 4/1</a> ayetlerinde kısaca <em>tek bir nefisten (nefsten)</em> insanların yaratıldığına değinilmiştir. <em>nefis (nefs)</em> kelimesini bazı müslümanlar Hz. Adem olarak yorumlamıştır. Ancak bu <em>nefis</em> kelimesi Hz Adem olamaz.[1]</p><ul><li><a href="https://fasiharapca.com/muennes-muzekkerlik-muzekkker-muenneslik-arapca/35966">Nefis kelimesi müenne</a>s yani dişi bir kelimedir. Hz Adem ise erildir, erkektir. Müennes bir kelimenin eril bir kişi yerine zamir olarak kullanılması makul değildir.</li><li>Nefis kelimesi belirli bir nefsi temsil ediyorsa <strong>belirlilik takısı</strong> ile yazılmalıdır. Yani <em>en-nefs, el-nefs</em> şeklinde bir belirlilik takısı bulunmalıdır. Belirlilik takısı İngilizcedeki “<em>the</em>” kelimesinin işlevini görür. Türkçe’mizde böyle bir kelime yoktur. Türkçe’ye çevrilirken ise “<em>o nefis</em>” şeklinde bir mana çıkmaktadır. <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=7&amp;ayet=189">Araf 7/189</a> ve <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=4&amp;ayet=1">Nisa 4/1</a> ayetlerinde belirlilik takısı yoktur.</li><li><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=7&amp;ayet=189">Araf 7/189</a> daki bahsedilen “nefse” Hz Adem dersek, hemen sonraki ayette <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=7&amp;ayet=190">Araf 7/190</a> da o nefsin şirk koştuğundan bahsediyor. Dolayısıyla Hz Adem şirk koşmak gibi Kuran’ın üzerinde şiddetle durduğu ve men ettiği bir günaha düşmüş olur. Bazı mealler nedense 189 ve 190. ayetler ard arda olmasına ve aynı olay örgüsünde olmalarına rağmen ayetlerde bahsedilen kişilerin birini Hz Adem diğerini ise başka birisi olarak gösteriyor.</li><li><em>Nefs</em> kelimesi <a href="https://kuranmeali.com/Kokler.php?kok=ن%20ف%20س&amp;harf=ن">Kuran’da 298 yerde geçmekte</a> ve çoğu yerde “<em>can</em>”, “<em>kendi</em>” anlamlarına gelmektedir. Örneğin Tevbe 9/128 de “<em>… size kendinizden öyle bir Elçi gelmiştir ki …</em>” ifadesiyle “kendi” anlamında kullanılmıştır.</li></ul><p><a href="https://www.kuranmeali.com/AyetKarsilastirma.php?sure=55&amp;ayet=14">Rahman 55/14</a>, <a href="https://www.kuranmeali.com/AyetKarsilastirma.php?sure=37&amp;ayet=11">Saffat 37/11</a>, <a href="https://www.kuranmeali.com/AyetKarsilastirma.php?sure=32&amp;ayet=7">Secde 32/7</a>, <a href="https://www.kuranmeali.com/AyetKarsilastirma.php?sure=23&amp;ayet=12">Müminun 23/12</a>, <a href="https://www.kuranmeali.com/AyetKarsilastirma.php?sure=6&amp;ayet=2">Enam 6/2</a>, <a href="https://www.kuranmeali.com/AyetKarsilastirma.php?sure=30&amp;ayet=20">Rum 30/20</a>, <a href="https://www.kuranmeali.com/AyetKarsilastirma.php?sure=17&amp;ayet=61">İsra 17/61</a>, <a href="https://www.kuranmeali.com/AyetKarsilastirma.php?sure=7&amp;ayet=22">Araf 7/22</a>, <a href="https://www.kuranmeali.com/AyetKarsilastirma.php?sure=38&amp;ayet=76">Sad 38/76</a> ayetlerinde kısaca insanın topraktan ya da çamurdan yaratılmasından bahsetmektedir. İnsanın topraktan yetişen bitkiler ve o bitkileri tüketen hayvanlar sayesinde hayat bulduğu ve yaşadığı düşünüldüğünde bir çelişkiden çok gözümüzün önünde duran bir hakikatin ifade edildiği görülmektedir. İnsan toprağın ve suyun bir başka formundan ibarettir. Ayetler zaten literal/gerçek anlamda ele alındığında bunu ifade etmektedir.</p><p>Son olarak Hz Adem’in eşinin ismi olarak bilinen Havva adı Kuran’da geçmez. Hz Adem’in eşinin Hz Adem’in kaburga kemiğinden yaratıldığı şeklinde bir ifade de geçmez.</p><h4><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=86&amp;ayet=7">Tarık 86/5-7</a> Sperm kaburga arasından oluşuyor yazıyor</h4><blockquote>فَلْيَنْظُرِ الْاِنْسَانُ مِمَّ خُلِقَۜ خُلِقَ مِنْ مَٓاءٍ دَافِقٍۙ يَخْرُجُ مِنْ بَيْنِ الصُّلْبِ وَالتَّرَٓائِبِۜ</blockquote><blockquote>Öyleyse insan neden yaratıldığına bir baksın. Fışkırıp çıkan bir sudan yaratıldı. Bu su, bel ile kaburga kemikleri arasından çıkar.</blockquote><p>Diyanet İşleri Meali (Yeni)</p><p>Evvela yedinci ayette birşeyin nerede <strong>oluştuğunu</strong> değil, nereden <strong>çıktığını</strong> söylüyor. يَخْرُجُ (yehrucu) ifadesi <em>çıkmak </em>anlamına gelmektedir<em>. خ ر ج </em>kökü burada fiili oluşturmaktadır. Kuran’da <a href="https://kuranmeali.com/Kokler.php?kok=خ%20ر%20ج&amp;harf=خ">182 yerde geçmekte ve hepsinde de çıkma, çıkarma anlamlarına gelmektedir</a>. Burada çıkan şey için iki ihtimal söz konusudur: <strong>meni (sperm)</strong> ya da <strong>insan (bebek).</strong></p><p>Öncelikle azınlıkta kalan bir görüş olsa da bunun bir insan (bebek) olduğunu varsayalım. Bu durumda herhangi bir çelişki ya da hata söz konusu değildir. <a href="https://www.youtube.com/watch?v=DXbmVzBgl-w">Kur’an’a Göre Sperm Kaburga Kemiklerinde Mi Oluşur?</a> videosunda bu görüş ifade edilmiştir. <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=86&amp;ayet=8">Tarık 86/8</a> de tekrardan insanı kast etmesi bu görüşü desteklemektedir.</p><p>İkinci olarak ayette bahsedilen şeyin sperm olduğunu varsayalım. Evvela bu görüşün meallerin büyük çoğunluğunda geçtiğini ifade edelim. Bilindiği gibi spermler testislerde üretilmekte ve penisten vücudun dışına atılmaktadır. Penis ve testisler belin altında kalmaktadır. İlk bakışta spermin bel üstüne hiç çıkmadığı zannedilebilir. Ancak spermlerin vücut içerisindeki hareketini yakından inceelediğimizde farklı bir tablo ile karşı karşıya kalırız. “<a href="https://youtu.be/qxwV9ckxVrw?t=300">Pathway of Sperm from a Testis to Outside the Body</a>” videosunda spermin testislerde üretilip hangi yol ile vücuttan dışarı atıldığı görsel olarak gösterilmiştir.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*x6QryVWjIZjg5k0kW3M3EQ.jpeg" /></figure><p>Yukarıdaki resim bu videodan alınmıştır. Açık yeşil renkli kısım spermin yolunu göstermektedir. Resimde ve videoda görüldüğü gibi spermler testislerde üretildikten sonra yukarı doğru hareket edip leğen kemiğinin <strong>üstüne</strong> çıkıp sonradan tekrar aşağı doğru yönelmektedir. Dolayısıyla meninin bel ve kaburga kemikleri arasından çıktığı <strong>gerçekten doğru bir ifadedir</strong>.</p><p>Bazı meallerde (11 mealde) bel ile omurga arasından çıktığı söylenmektedir.</p><blockquote>“O su, omurga ile göğüs kemikleri arasından çıkar.”</blockquote><p>Süleymaniye Vakfı Meali</p><p>Omurgaların kuyruk sokumuna kadar aşağı indiği düşünüldüğünde bu ifade de doğrudur.</p><p>Bazı meallerde ise erkeğin beli ve kadının göğüs kemikleri arasından çıkar benzeri ifadeler mevcuttur.</p><blockquote>“O su, erkeğin sulbü ile kadının göğüs kemikleri arasından çıkar.”</blockquote><p>Elmalılı Hamdi Yazır Meali</p><p>Aşağıdaki resimdeki kelime kelime meali incelediğimizde kadın ve erkek ifadelerinin olmadığını görmekteyiz.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*uZdSojMgNfFArqUO2qajhg.jpeg" /></figure><p>Kadın ve erkek ifadeleri meal yazarlarının bir yorumudur. Bu ifadeler gerçekten doğru da olabilir. Bu durumda da içinde <strong>çelişki</strong> ya da <strong>hata</strong> olmayan bir şekilde yorumlanması mümkündür. Burada kinayeli olarak cinsel organlardan ya da cinsel ilişkiden bahsedildiği de anlaşılabilir.</p><h4><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=16&amp;ayet=66">Nahl 16/66</a> Süt ineklerin memelerinde değil karınlarında oluşur</h4><blockquote>وَاِنَّ لَكُمْ فِي الْاَنْعَامِ لَعِبْرَةًۜ نُسْق۪يكُمْ مِمَّا ف۪ي بُطُونِه۪ مِنْ بَيْنِ فَرْثٍ وَدَمٍ لَبَنًا خَالِصًا سَٓائِغًا لِلشَّارِب۪ينَ</blockquote><blockquote>Şüphesiz (sağmal) hayvanlarda da sizin için bir ibret vardır. Onların karınlarındaki fışkı ile kan arasından (süzülen) içenlere halis ve içimi kolay süt içiriyoruz.</blockquote><p>Diyanet İşleri Meali (Yeni)</p><p>Ayette kan ve işkembe gibi pis şeylerin arasından temiz bir içecek olan sütün geldiği yazıyor. Nerede oluştuğu hakkında bir iddia söz konusu değil.</p><h4><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=6&amp;ayet=38">Enam 6/38</a> Yaşayan her canlı topluluk kurmuştur</h4><blockquote>وَمَا مِنْ دَٓابَّةٍ فِي الْاَرْضِ وَلَا طَٓائِرٍ يَط۪يرُ بِجَنَاحَيْهِ اِلَّٓا اُمَمٌ اَمْثَالُكُمْۜ مَا فَرَّطْنَا فِي الْكِتَابِ مِنْ شَيْءٍ ثُمَّ اِلٰى رَبِّهِمْ يُحْشَرُونَ</blockquote><blockquote>Yeryüzünde gezen her türlü canlı ve (gökte) iki kanadıyla uçan her tür kuş, sizin gibi birer topluluktan başka bir şey değildir. Biz Kitap’ta hiçbir şeyi eksik bırakmadık. Sonunda hepsi Rablerinin huzuruna toplanıp getirilecekler.</blockquote><p>Diyanet İşleri Meali (Yeni)</p><p>Bir canlının tek başına ve benzersiz bir şekilde bulunmadığı zaten bilinen bir biyolojik gerçek.</p><h4><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=2&amp;ayet=72">Bakara 2/72–73</a> Ölenler biftekle yeniden hayata döndürülebilir</h4><blockquote>وَاِذْ قَتَلْتُمْ نَفْسًا فَادّٰرَءْتُمْ ف۪يهَاۜ وَاللّٰهُ مُخْرِجٌ مَا كُنْتُمْ تَكْتُمُونَۚ فَقُلْنَا اضْرِبُوهُ بِبَعْضِهَاۜ كَذٰلِكَ يُحْيِ اللّٰهُ الْمَوْتٰى وَيُر۪يكُمْ اٰيَاتِه۪ لَعَلَّكُمْ تَعْقِلُونَ</blockquote><blockquote>Hani, bir kimseyi öldürmüştünüz de suçu birbirinizin üstüne atmıştınız. Hâlbuki Allah, gizlemekte olduğunuzu ortaya çıkaracaktı. <br>“Sığırın bir parçası ile öldürülene vurun” dedik. (Denileni yaptılar ve ölü dirildi.) İşte, Allah ölüleri böyle diriltir, düşünesiniz diye mucizelerini de size böyle gösterir.</blockquote><p>Diyanet İşleri Meali (Yeni)</p><p>Burada ayetler bir mucizeyi anlatıyor. Her zaman olan bir olay değil. Ayrıca <a href="https://kuranmeali.com/Aciklama.php?meal=islamoglu&amp;sureno=2&amp;ayet=73">Mustafa İslamoğlu mealine göre mecazi bir anlatım</a> da olabilir.</p><h4><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=13&amp;ayet=2">Rad 13/2</a> Güneşi ve ayı Allah tutar</h4><blockquote>اَللّٰهُ الَّذ۪ي رَفَعَ السَّمٰوَاتِ بِغَيْرِ عَمَدٍ تَرَوْنَهَا ثُمَّ اسْتَوٰى عَلَى الْعَرْشِ وَسَخَّرَ الشَّمْسَ وَالْقَمَرَۜ كُلٌّ يَجْر۪ي لِاَجَلٍ مُسَمًّىۜ يُدَبِّرُ الْاَمْرَ يُفَصِّلُ الْاٰيَاتِ لَعَلَّكُمْ بِلِقَٓاءِ رَبِّكُمْ تُوقِنُونَ</blockquote><blockquote>Allah, gökleri gördüğünüz herhangi bir direk olmadan yükselten, sonra Arş’a[288] kurulan, güneşi ve ayı buyruğu altına alandır. Bunların hepsi belli bir zamana kadar akıp gitmektedir. O, her işi (hakkıyla) düzenler, yürütür, âyetleri ayrı ayrı açıklar ki Rabbinize kavuşacağınıza kesin olarak inanasınız.*</blockquote><p>Diyanet İşleri Meali (Yeni)</p><p>“<em>tutma</em>” ifadesi 39 Türkçe mealin sadece 4 tanesinde geçmektedir. Bunlarda ise “… yükseltip tutan …”, “… [koyduğu yasalara] tâbi tutan …”, “… dengede tutan… ”, “… yasalara tabi tutan …” ifadeleriyle kullanılmaktadır. Evrenin genişlemesini göz önüne almadığımızda, gök cisimleri arasındaki kütle çekimi yasasının 13 milyar yıldan uzun süredir geçerli olup birbirlerini çok büyük güçlerle çekip durdukları halde çarpışmamaları ilginçtir. Nitekim kütle çekimi yasasını bulduktan sonra <a href="https://sciencefiction.com/2011/11/28/science-feature-newtons-collapsing-universe/">Isaac Newton da aynı şaşkınlığı yaşamış ve evrenin sonsuz olduğunu iddia etmiştir</a>.</p><h4><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=55&amp;ayet=19">Rahman 55/19–22</a> Denizler birbirine karışmıyor ve tatlı suda inci ve mercan yetişebilir diyor</h4><blockquote>مَرَجَ الْبَحْرَيْنِ يَلْتَقِيَانِۙ بَيْنَهُمَا بَرْزَخٌ لَا يَبْغِيَانِۚفَبِاَيِّ اٰلَٓاءِ رَبِّكُمَا تُكَذِّبَانِ يَخْرُجُ مِنْهُمَا اللُّؤْلُؤُ۬ وَالْمَرْجَانُۚ</blockquote><blockquote>(Suları acı ve tatlı olan) iki denizi salıvermiştir; birbirine kavuşuyorlar.[518]* (Fakat) aralarında bir engel vardır, birbirine geçip karışmıyorlar. O hâlde, Rabbinizin hangi nimetlerini yalanlıyorsunuz? O denizlerin her ikisinden de inci ve mercan çıkar.</blockquote><p>Diyanet İşleri Meali (Yeni)</p><p>Öncelikle mealde parantez içinde yazılan “<em>Suları acı ve tatlı olan</em>” ifadeleri metnin orijinalinde geçmemektedir. Genellikle Kuran meallerinde parantez içlerindeki ifadeler orijinal metinlerde geçmemektedir. Aşağıdaki kelime mealinde durum daha iyi görülebilir.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*9YyKx3yrE71bAdZ1lA8Fqw.jpeg" /></figure><p>Dolayısıyla bu mealin yanlış yorumlandığını söyleyebiliriz. Muhtemelen tatlı ve tuzlu su yorumunun sebebi <a href="https://www.kuranmeali.com/AyetKarsilastirma.php?sure=25&amp;ayet=53">Furkan 25/53</a>’de tatlı ve tuzlu suların birbirine karışmamasından bahsetmesidir. Ancak <a href="https://www.kuranmeali.com/AyetKarsilastirma.php?sure=25&amp;ayet=53">Furkan 25/53</a>’de inci ve mercandan <strong>bahsedilmemektedir</strong>. Not olarak <a href="https://www.kuranmeali.com/AyetKarsilastirma.php?sure=27&amp;ayet=61">Neml 27/61</a>’de de iki deniz (su) arasına bir engel koyulduğundan bahsedildiğini de ekleyelim. Burada da tatlı, tuzlu gibi bir ayrım yapılmamış.</p><p><a href="https://physics.stackexchange.com/questions/51293/how-can-two-seas-not-mix">Farklı özelliklerdeki suların birbiriyle karışmaması</a> defalarca gözlemlenmiş ve fizik, kimya yasalarıyla açıklanmış bilimsel bir gerçektir. Sular tuzluluk, sıcaklık gibi çeşitli özellikleri sebebiyle birbiriyle karışmayabilir. “<a href="https://youtu.be/pKv4OXNGDPc?t=177">Eel Suffers Toxic Shock | Blue Planet II | BBC Earth</a>” videosunda gösterilen denizin içindeki aşırı tuzlu “<em>havuz</em>” buna bir örnektir. Aşağıdaki resim videodan alınmıştır.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Vc-dA7tgwWqCDDA72b8Sxw.png" /></figure><p>Buradaki ayetlerde açıkça birinin <strong>tatlı </strong>birinin <strong>tuzlu </strong>olduğu geçmemektedir. Dolayısıyla ayetler tatlı suda inci mercan yetiştiğini iddia <strong>etmemektedir</strong>.</p><h4>Dağlar sabittir, zelzeleler ve depremlerden korumak için diktik</h4><blockquote>وَاَلْقٰى فِي الْاَرْضِ <strong>رَوَاسِيَ</strong> اَنْ تَم۪يدَ بِكُمْ وَاَنْهَارًا وَسُبُلًا لَعَلَّكُمْ تَهْتَدُونَۙ</blockquote><blockquote>Allah, yeryüzü sizi sarsmasın diye oraya sabit dağlar yerleştirdi. Yolunuzu bulmanız için de nehirler ve yollar yarattı.</blockquote><p>Elmalılı Hamdi Yazır Meali, <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=16&amp;ayet=15">Nahl 16/15</a></p><blockquote>وَجَعَلْنَا فِي الْاَرْضِ <strong>رَوَاسِيَ </strong>اَنْ تَم۪يدَ بِهِمْ وَجَعَلْنَا ف۪يهَا فِجَاجًا سُبُلًا لَعَلَّهُمْ يَهْتَدُونَ</blockquote><blockquote>Yeryüzünde, insanlar sarsılmasın diye sabit dağlar yarattık, rahat gidebilsinler diye dağların aralarında geniş yollar var ettik.</blockquote><p>Elmalılı Hamdi Yazır Meali, <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=21&amp;ayet=31">Enbiya 21/31</a></p><blockquote>خَلَقَ السَّمٰوَاتِ بِغَيْرِ عَمَدٍ تَرَوْنَهَا وَاَلْقٰى فِي الْاَرْضِ <strong>رَوَاسِيَ</strong> اَنْ تَم۪يدَ بِكُمْ وَبَثَّ ف۪يهَا مِنْ كُلِّ دَٓابَّةٍۜ وَاَنْزَلْنَا مِنَ السَّمَٓاءِ مَٓاءً فَاَنْبَتْنَا ف۪يهَا مِنْ كُلِّ زَوْجٍ كَر۪يمٍ</blockquote><blockquote>O, gökleri direksiz yarattı, onları görüyorsunuz. Yeryüzüne de sizi çalkalar diye ağır baskılar (sabit ve büyük dağlar) bıraktı ve orada herbir hayvandan üretti. Hem biz gökten bir su indirdik de orada her güzel çiftten (veya her hoş çeşitten) bitkiler yetiştirdik.</blockquote><p>Elmalılı Hamdi Yazır Meali, <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=31&amp;ayet=10">Lokman 31/10</a></p><p>Öncelikle üç ayetde de “<em>dağ</em>”, “<em>sabit dağ</em>”, “<em>ağır baskılar</em>” olarak çevrilen ifadenin “<strong>رَوَاسِيَ</strong>” (ravâsiye) olduğunu belirtelim. Bu kelimeyi dağ olarak çevirmek doğru olmayabilir çünkü <a href="https://translate.google.com/?sl=tr&amp;tl=ar&amp;text=da%C4%9F&amp;op=translate">dağ kelimesi “جبل”</a> (cebel) olarak geçiyor. <a href="https://kuranmeali.com/Kokler.php?kok=%D8%AC%20%D8%A8%20%D9%84&amp;harf=%D8%AC">“جبل” (cebel) ifadesi Kuran’da 41 yerde</a> geçiyor ve hepsinde de dağ manasında kullanılmıştır. Dolayısıyla “ağır baskılar”, “ağır kütleler” gibi ifadelerin daha doğru olduğu anlaşılıyor. Burada kastedilen <a href="https://tr.wikipedia.org/wiki/D%C3%BCnya%27n%C4%B1n_mantosu">sıvı ya da sıvıya yakın olan manto katmanı</a> üzerindeki yerkabuğundaki ağır kütlelerin sarsıntıları azaltması olabilir. Deniz üzerindeki bir kayıkta çok sarsıntı olurken çok ağır bir gemide ya da bir buz dağında çok sarsıntı olmaz. Ayrıca <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=27&amp;ayet=88">Neml 27/88</a>’de dağların sabit zannedildiğine ancak onların aslında <strong>bulutlar gibi yürüdüğünden</strong> bahsedilmektedir. Burada da dağ kelimesi “جبل” (cebel) olarak geçiyor.</p><p>Sonuç olarak Kuran “<em>dağların sabit olduğunu</em>” iddia <strong>etmemektedir</strong>. Ayrıca “dağın olduğu yerde deprem olmaz” gibi bir iddiası da yok.</p><h4><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=5&amp;ayet=116">Maide 5/116</a> Hıristiyanlar Meryem’i ilah edinmediği halde öyle diyor</h4><blockquote>وَاِذْ قَالَ اللّٰهُ يَا ع۪يسَى ابْنَ مَرْيَمَ ءَاَنْتَ قُلْتَ لِلنَّاسِ اتَّخِذُون۪ي وَاُمِّيَ اِلٰهَيْنِ مِنْ دُونِ اللّٰهِۜ قَالَ سُبْحَانَكَ مَا يَكُونُ ل۪ٓي اَنْ اَقُولَ مَا لَيْسَ ل۪ي بِحَقٍّۜ اِنْ كُنْتُ قُلْتُهُ فَقَدْ عَلِمْتَهُۜ تَعْلَمُ مَا ف۪ي نَفْس۪ي وَلَٓا اَعْلَمُ مَا ف۪ي نَفْسِكَۜ اِنَّكَ اَنْتَ عَلَّامُ الْغُيُوبِ</blockquote><blockquote>Allah, kıyamet günü şöyle diyecek: “Ey Meryem oğlu İsa! Sen mi insanlara, Allah’ı bırakarak beni ve anamı iki ilâh edinin, dedin?” İsa da şöyle diyecek: “Seni bütün eksikliklerden uzak tutarım. Hakkım olmayan bir şeyi söylemem, benim için söz konusu olamaz. Eğer ben onu söylemiş olsaydım, elbette sen bunu bilirdin. Sen benim içimde olanı bilirsin, ama ben sende olanı bilemem. Şüphesiz ki yalnızca sen gaybları hakkıyla bilensin.”</blockquote><p>Diyanet İşleri Meali (Yeni)</p><p>Ortodoks Hıristiyanlığın temelinde üçleme “teslis” inanışı vardır. Buna göre Hz İsa Tanrı’dır. Babasız Tanrı’yı doğuran birinin insanüstü bir statüde görülmesi de normal. Kuran’ın eleştirisi bu yönde olabilir. Kuran’a göre birşeyi ilah edinmek biraz daha genel bir kavramdır. Zira <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=25&amp;ayet=43">Furkan 25/43</a>’de hevasını, arzusunu ilah edinenlerden bahsetmektedir. <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=9&amp;ayet=31">Tevbe 9/31</a>’de ise haham ve rahipleri ilah edinenlerden bahsetmektedir.</p><h4><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=81&amp;ayet=16">Tekvîr<strong> </strong>81/2</a> Yıldızların düşebileceğini söyler</h4><blockquote>وَاِذَا النُّجُومُ انْكَدَرَتْۙۖ</blockquote><blockquote>Yıldızlar, bulanıp söndüğü zaman,</blockquote><p>Diyanet İşleri Meali (Yeni)</p><p>Burada ayetlerin bağlamı kıyametin kopmasından ve ileriki aşamalardan bahsediyor. Bir ayet bir cümleden kısa, şiir benzeri bir üslup var. Ayetlerin devamında <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=81&amp;ayet=9">Tekvîr 81/8–9</a> ayetinde “Diri diri gömülen kız çocuğunun, hangi günahtan ötürü öldürüldüğü sorulduğu zaman,” ifadelerinden bağlamın ahiret ya da kıyamet olduğu anlaşılıyor.</p><h4><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=4&amp;ayet=34">Nisa 4/34</a> Kadınları dövün</h4><blockquote>اَلرِّجَالُ قَوَّامُونَ عَلَى النِّسَٓاءِ بِمَا فَضَّلَ اللّٰهُ بَعْضَهُمْ عَلٰى بَعْضٍ وَبِمَٓا اَنْفَقُوا مِنْ اَمْوَالِهِمْۜ فَالصَّالِحَاتُ قَانِتَاتٌ حَافِظَاتٌ لِلْغَيْبِ بِمَا حَفِظَ اللّٰهُۜ وَالّٰت۪ي تَخَافُونَ نُشُوزَهُنَّ فَعِظُوهُنَّ وَاهْجُرُوهُنَّ فِي الْمَضَاجِعِ وَ<strong>اضْرِبُوهُنَّۚ</strong> فَاِنْ اَطَعْنَكُمْ فَلَا تَبْغُوا عَلَيْهِنَّ سَب۪يلًاۜ اِنَّ اللّٰهَ كَانَ عَلِيًّا كَب۪يرًا</blockquote><blockquote>Erkekler, kadınların koruyup kollayıcılarıdırlar.[115] Çünkü Allah, insanların kimini kiminden üstün kılmıştır. Bir de erkekler kendi mallarından harcamakta (ve ailenin geçimini sağlamakta)dırlar. İyi kadınlar, itaatkârdırlar. Allah’ın (kendilerini) koruması sayesinde onlar da “gayb”ı[116] korurlar. (Evlilik yükümlülüklerini reddederek) başkaldırdıklarını gördüğünüz kadınlara öğüt verin, onları yataklarında yalnız bırakın. (Bunlar fayda vermez de mecbur kalırsanız) onları <strong>(hafifçe) dövün</strong>.[117] Eğer itaat ederlerse, artık onların aleyhine başka bir yol aramayın. Şüphesiz Allah, çok yücedir, çok büyüktür.*</blockquote><p>Diyanet İşleri Meali (Yeni)</p><p>Bu ayette, mealler arasında açık bir ihtilaf vardır. Bazıları dövülmenin olduğunu, bazıları hafifçe ya da sembolik bir dövülmenin olduğunu, bazıları ise hiç dövülme olmayıp ayrılmanın olduğunu iddia etmektedir. Burada ihtilafa sebep olan kelime DARABE (ضْرِبُوهُنَّۚ) fiilidir. Bu kelime “örnek vermek”, “yolculuğa çıkmak”, “vurup kırmak, parçalamak”, “dokundurmak”, “layık kılınmak, çarptırılmak”, “dokunmak, değdirmek”, “perde koymak”, “sarkıtmak, örtmek”, “yüz çevirmek, vazgeçmek”, “isnat etmek, nispet etmek”, “duvar vs. örmek” gibi birçok anlamda kullanılmaktadır. [2] Daha detaylı bilgi için Mehmet Okuyan Meal-Tefsir Nisa 4/34 3. dipnota bakabilirsiniz.</p><ul><li>Fiziksel darbe anlamında hiçbir zaman yanlız başına kullanılmamış hep<strong> bir nesneye ya da bir nesne ile</strong> vurmak anlamında kullanılmıştır. Burada, <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=4&amp;ayet=34">Nisa 4/34</a>’de ise <strong>tek başına</strong> geçmektedir.</li><li><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=13&amp;ayet=17">Ra‘d 13/17</a> ve <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=43&amp;ayet=58">Zuhruf 43/58</a>’de tek başına kullanılmış ve örnek vermek anlamında geçmiştir. Burada bir süre ayrı kalarak boşanmanın örneklendirilmesi anlamında geçiyor olması daha mantıklıdır. [2]</li><li><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=43&amp;ayet=5">Zuhruf 43/5</a>’de yine tek başına kullanılıp vazgeçmek anlamında kullanılmıştır.</li><li>Birine dayak atmak manasında Kuran’da geçmemektedir. [2]</li><li>Mevzu (uydurma) ya da zayıf hadislerde bile kadınların dövülebileceği geçmemektedir.</li><li>Sahih Buhari hadis kitabında kadınların dövülmesi men edilmekte (<a href="https://kuran.diyanet.gov.tr/tefsir/Nis%C3%A2-suresi/527/34-ayet-tefsiri">Buhârî, “Nikâh”, 93</a>)</li><li>Bazı <a href="https://kuran.diyanet.gov.tr/tefsir/Nis%C3%A2-suresi/527/34-ayet-tefsiri">eski tefsirlerde de</a> (Cessâs, II, 188; Ebû Bekir İbnü’l-Arabî, I, 415; İbn Âşür, V, 43–44) bu ayetin dövmek olamayacağı şeklinde yorumlar mevcuttur.</li><li>Ayetin devamında “gönülden bağlanırlarsa” ya da “itaat ederlerse” onların aleyhlerine olmayın demektedir. Bir kadının kocasından dayak yedikten gönülden bağlanmasından ya da itaatinden söz edilmesi mantıksızdır.</li><li><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=24&amp;ayet=6">Nur 24/6</a>’da kadına zina isnadında bile şiddetten söz etmiyor. 4 kere yeminleşmeden bahsediyor.</li><li><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=38&amp;ayet=44">Sad 38/44</a> Hz Eyyüb Peygamber eşini dövmeye <strong>yemin ettiği halde</strong> Allah onun eşini dövmesine izin vermiyor. Yeminine sadık kalması için bir demet sap ile vurmasını söylüyor.</li></ul><h4><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=65&amp;ayet=4">Talak 65/4</a> Kızlar ergenlikten önce evlenebilir mi?</h4><blockquote>وَالّٰٓـ۪ٔي يَئِسْنَ مِنَ الْمَح۪يضِ مِنْ نِسَٓائِكُمْ اِنِ ارْتَبْتُمْ فَعِدَّتُهُنَّ ثَلٰثَةُ اَشْهُرٍۙ وَالّٰٓـ۪ٔي<strong> لَمْ يَحِضْنَۜ</strong> وَاُو۬لَاتُ الْاَحْمَالِ اَجَلُهُنَّ اَنْ يَضَعْنَ حَمْلَهُنَّۜ وَمَنْ يَتَّقِ اللّٰهَ يَجْعَلْ لَهُ مِنْ اَمْرِه۪ يُسْرًا</blockquote><blockquote>Kadınlarınızdan âdetten kesilmiş olanlarla, <strong>henüz âdet görmeyenler</strong> hususunda tereddüt ederseniz, onların bekleme süresi üç aydır. Hamile olanların bekleme süresi ise, doğum yapmalarıyla sona erer. Kim Allah’a karşı gelmekten sakınırsa, Allah ona işinde bir kolaylık verir.</blockquote><p>Diyanet İşleri Meali (Eski)</p><p>Bu ayet boşanmadan önce ne kadar beklenilmesi gerektiğinden bahsetmektedir. “henüz adet görmeyenler” ifadesinden yola çıkarak bazıları “henüz adet görmeyenler ile boşanılabiliyorsa henüz adet görmeyenler (ergenliğe girmemiş kızlar) ile evlenilebilir” şeklinde bir yorum yapmaktadır. “Lem yehıdne” (لَمْ يَحِضْنَۜ) ifadesindeki “lem” edatı “henüz olmamaktan” daha çok “hiçbir zaman olmamak” gibi bir anlam vermektedir. Nitekim <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=112&amp;ayet=3">İhlas 112/3</a>’de de <strong>لَمْ</strong> يَلِدْ وَ<strong>لَمْ</strong> يُولَدْۙ (lem yelid velem yuled) ifadeleriyle Allah hakkında “Doğurmadı ve doğurulmadı” denmektedir.</p><p>İkinci olarak <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=4&amp;ayet=6">Nisa 4/6</a>’da evlilik çağından bahsetmekte. Burada kendi parasını idare edecek seviyede bir olgunluğa erişmekten bahsetmektedir. Dolayısıyla ergenliğe girmemiş çocukların evlenmesi Kuran’ın onayladığı bir davranış olamaz.</p><h4>Nuh Tufanı</h4><p>Kuran’da “Nuh tufanı” olarak bilinen vaka hakkında birçok ayet vardır. Burada kısaca büyük bir selin bir kavmi helak ettiğinden Hz. Nuh ve beraberindekilerin ise bir gemi yaparak bu tufandan kurtulduğu anlatılmaktadır. Kuran’da tufanın global ölçekte yani tüm dünyada olduğuna dair bir iddia söz konusu değildir. Hatta bazı yorumlarla bunun da diğer helak olan kavimler gibi yerel bir felaket olduğu anlaşılabilir.</p><blockquote>وَلَقَدْ اَرْسَلْنَا نُوحًا اِلٰى قَوْمِه۪ۘ اِنّ۪ي لَكُمْ نَذ۪يرٌ مُب۪ينٌۙ</blockquote><blockquote>Andolsun, biz Nûh’u kavmine peygamber olarak gönderdik. Onlara şöyle dedi: “Ben sizin için apaçık bir uyarıcıyım.”</blockquote><p>Diyanet İşleri Meali (Yeni)</p><p>Yukarıdaki <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=11&amp;ayet=25">Hud 11/25</a> ayetinden Hz Nuh’un <strong>kendi kavmine</strong> gönderildiği bildiriliyor.</p><blockquote>فَكَذَّبُوهُ فَاَنْجَيْنَاهُ وَالَّذ۪ينَ مَعَهُ فِي الْفُلْكِ وَاَغْرَقْنَا الَّذ۪ينَ كَذَّبُوا بِاٰيَاتِنَاۜ اِنَّهُمْ كَانُوا قَوْمًا عَم۪ينَ۟</blockquote><blockquote>Derken kavmi onu yalanladı. Biz de onu ve gemide onunla beraber bulunanları kurtardık. Âyetlerimizi <strong>yalanlayanları</strong> da suda boğduk. Çünkü onlar (vicdanları hakka kapalı) kör bir kavim idiler.</blockquote><p>Diyanet İşleri Meali (Yeni)</p><p>Yukarıdaki <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=7&amp;ayet=64">Araf 7/64</a> ayetinden ise yalanlayanların boğulduğu anlaşılıyor.</p><p>Global bir tufanın olduğu iddiaları Eski Ahit’de yer almaktadır. <a href="https://www.kutsalkitap.org/online-kutsal-kitap/">Yaratılış 6:17</a>’de aşağıdaki gibi geçmektedir.</p><blockquote>Yeryüzüne tufan göndereceğim. Göklerin altında soluk alan bütün canlıları yok edeceğim. Yeryüzündeki her canlı ölecek.</blockquote><p>Bu ifadeler global ölçekli bir tufan/sel olduğunu iddia etmektedir. Kuran’da ise böyle bir iddia yoktur.</p><h4>Kuran’da Hz Muhammed’in özel hayatı ile ilgili kaç ayet var?</h4><p>Kuran’da besmeleleri saymadığımızda 6236 ayet vardır. “Hz Muhammed’in özel hayatı” ile ilgili diyebileceğimiz ayetler çok ufak bir kısmı teşkil eder.</p><p><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=24&amp;ayet=11">Nur 24/11–20</a> ayetlerinde Hz Muhammed’in eşi Hz Aişe’ye atılan zina iftirası anlatılmaktadır. Burada sadece tarihsel bir olaydan ziyade böyle bir olay karşısında müslümanların nasıl davranması gerektiği nevinden öğütler de bolca verilmektedir.</p><p><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=33&amp;ayet=28">Ahzab 33/28–40</a>: Hz Muhammed’in eşlerine yönelik özel uyarılar, müminlerin on özelliği, Hz Muhammed’in Hz Zeynep ile evliliği gibi konulara değinmektedir. [3]</p><p><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=33&amp;ayet=50">Ahzab 33/50–55</a> ayetlerinde Hz Muhammed’in evlilikleri ve evine giriş adabından bahsedilmektedir.</p><p><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=17&amp;ayet=79">İsra 17/79</a>’da sadece Hz Muhammed’e gece namazının farz olduğu bildiriliyor.</p><p><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=66&amp;ayet=1">Tahrim 66/1–12</a>’de Hz Muhammed ve eşlerine yönelik uyarılar ve helal şeylerin haram kılınmaması gerektiği, sır tutmamanın sonucu, azaptan korunma uyarılarından bahsetmektedir. [4]</p><p>Burada bahsedilen Hz Muhammed’in özel hayatı ile ilgili ayetlerin toplam sayısı 42’dir. Bu 6236 ayette sadece binde 7 gibi bir orana karşılık gelir. Bu ayetler hem insanlara öğüt vermek açısından hemde Hz Muhammed’in hayatıyla ilgili tarihsel bilgi vermesi açısından oldukça değerlidir.</p><h4>Kuran akıl etmeye karşı mı?</h4><p>Kuran’da akletmeye, düşünmeye, derin derin düşünmeye sevk eden, teşvik eden 700’den fazla ayet vardır. [12] Örneğin Diyanet Vakfı mealinde <a href="https://kuranmeali.com/Arama.php?kelime=düşün&amp;meal=diyanetvakfi&amp;sure=hepsi&amp;tip=herhangi">“düşün” ifadesi 115 kez</a>, “<a href="https://kuranmeali.com/Arama.php?kelime=akıl&amp;meal=diyanetvakfi&amp;sure=hepsi&amp;tip=herhangi">akıl” ifadesi 72 kez</a>, <a href="https://kuranmeali.com/Arama.php?kelime=delil&amp;meal=diyanetvakfi&amp;sure=hepsi&amp;siralama=">“delil” ifadesi 113 kez</a>, <a href="https://kuranmeali.com/Arama.php?kelime=ibret&amp;meal=diyanetvakfi&amp;sure=hepsi&amp;siralama=">“ibret” ifadesi 87 kez</a> geçmektedir. Birçok yerde “görmek” gibi ifadeler de “anlamak” manasında kullanılmıştır. <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=32&amp;ayet=27">Secde 32/27</a> örnek olarak verilebilir.</p><blockquote>Görmediler mi ki, biz yağmuru kupkuru yere gönderip onunla hayvanlarının ve kendilerinin yiyeceği ekinler çıkarırız. Hâlâ görmeyecekler mi?</blockquote><p>Diyanet İşleri Meali (Yeni)</p><p>Son olarak aklın vazgeçilmez yeri ve önemini en iyi ifade eden ayetlerden biri olarak <a href="http://Yunus 10/101">Yunus 10/101</a> örnek olarak gösterilebilir.</p><blockquote>Allah’ın izni olmadıkça, hiçbir kimse iman edemez. Allah, azabı akıllarını (güzelce) kullanmayanlara verir.</blockquote><p>Diyanet İşleri Meali (Yeni)</p><h4>Her meal ve tefsir farklı mı?</h4><p>Mealler arasında bazı meselelerde anlaşmazlık olsa da anlaşmazlık olan ayet sayısının maximum 50 olduğunu düşünüyorum. Onun haricinde Allah’ın varlığı, peygamberlerin gerçek oluşu, ahiret, Allah’ın adil olması gibi temel birçok mesele hepsinde ortak olarak aynı. Bunun için farklı mealleri karşılaştırarak okumak faydalı olabilir. Bunu ücretsiz olarak yapabileceğiniz birçok website var. <a href="https://kuranmeali.com">kuran meali.com</a>, <a href="https://acikkuran.com">Açık Kuran</a>, <a href="https://birmeal.com">birmeal.com</a> kullanılabilir. Ayrıca kelime meallerinden de hangi kelimeye hangi mana verildiği anlaşılabilir.</p><h4>Miras paylaşımınında matematiksel hata</h4><p><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=4&amp;ayet=11">Nisa 4/11–12</a> ayetlerinde ölen bir kişinin mirasının paylaşımından bahsedilmektedir. Bazı kombinasyonlarda burada verilen kesirli ifadelerden toplamı <strong>tam 1 olmayan sonuçlar</strong> çıkmaktadır. Mesela ölen kişinin sadece 1 kızı varsa ayete göre 1/2’lik pay verilir ve sonuçta 1/2’lik pay ise açıkta kalır. Burada nasıl kesirli sayılar verilirse verilsin bazı kombinasyonlarda bu gibi durumların çıkacağı ortadadır. Dolayısıyla burada matematiksel bir hata yoktur.</p><p>Miras paylaşımında Kuran her zaman öncelikle ölen kişinin vasiyetini esas alır. Vasiyet yerine getirildikten sonraki durumlar için hükümleri verir. Ayrıca <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=2&amp;ayet=180">Bakara 2/180</a>’e göre vasiyette bulunmak farzdır. <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=4&amp;ayet=11">Nisa 4/11–12</a> ayetlerinin nasıl uygulanacağı konusunda farklı yorumlar bulunmaktadır. Farklı yorumlar kısaca kesirli sayıların birbirlerine oranlarının esas alınmasını ve bir öncelik sırasına göre (önce eşine hakkını verip kalanı paylaştırmak gibi) pay edilmesini savunmaktadır.</p><h4>Bağlamından koparılan ifadelerle yapılan iddialar</h4><p>Kuran emirleri madde madde listelenmiş bir kitap değildir. Kimi zaman <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=2&amp;ayet=282">1 ayet 1 sayfayı kaplayabiliyor</a>, kimi zaman ise 2–3 ayet 1 cümle oluşturabilir. Bir surenin bir ayetini ve bir başka surenin bir ayetini yan yana getirdiğinizde birbiriyle çelişiyor gibi görünebilir. Bu durumda ayetlerin geçtiği bağlam ele alınıp incelenmelidir. En azından bir önceki ve bir sonraki ayetlere bakmak ayeti anlamak için oldukça faydalı olabilir.</p><p>İkinci olarak bir ayeti önüne arkasına bakmadan bağlamından koparılıp hüküm çıkarmaya çalışmak da oldukça yanlıştır. Buna <a href="http://Tevbe 9/5">Tevbe 9/5</a> tipik bir örnek olarak verilebilir.</p><blockquote>فَاِذَا انْسَلَخَ الْاَشْهُرُ الْحُرُمُ فَاقْتُلُوا<strong> الْمُشْرِك۪ينَ</strong> حَيْثُ وَجَدْتُمُوهُمْ وَخُذُوهُمْ وَاحْصُرُوهُمْ وَاقْعُدُوا لَهُمْ كُلَّ مَرْصَدٍۚ فَاِنْ تَابُوا وَاَقَامُوا الصَّلٰوةَ وَاٰتَوُا الزَّكٰوةَ فَخَلُّوا سَب۪يلَهُمْۜ اِنَّ اللّٰهَ غَفُورٌ رَح۪يمٌ</blockquote><blockquote>Haram aylar çıkınca bu <strong>Allah’a ortak koşanları</strong> artık bulduğunuz yerde öldürün, onları yakalayıp hapsedin ve her gözetleme yerine oturup onları gözetleyin. Eğer tövbe ederler, namazı kılıp zekâtı da verirlerse, kendilerini serbest bırakın. Şüphesiz Allah çok bağışlayıcıdır, çok merhamet edicidir.</blockquote><p>Diyanet İşleri Meali (Yeni)</p><p>Yukarıda verilen ayette müşrikler (Allah’a ortak koşanlar) <strong>الْمُشْرِك۪ينَ (el-müşrikine)</strong> ifadesi ile kastedilen herhangi bir müşrik değildir. “el” (الْ) takısı belirlilik takısıdır. Dolayısıyla burada belirli olan yahut önceden bahsedilen müşrikler kastedilmektedir.</p><p>Son olarak bazen de bir ayetin tamamını bile değil, sadece bir kısmını kesip alarak hüküm çıkarmaya çalışmak oldukça yanlıştır. Bir örnek olarak <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=59&amp;ayet=7">Haşr 59/7</a> örnek verilebilir.</p><blockquote>مَٓا اَفَٓاءَ اللّٰهُ عَلٰى رَسُولِه۪ مِنْ اَهْلِ الْقُرٰى فَلِلّٰهِ وَلِلرَّسُولِ وَلِذِي الْقُرْبٰى وَالْيَتَامٰى وَالْمَسَاك۪ينِ وَابْنِ السَّب۪يلِۙ كَيْ لَا يَكُونَ دُولَةً بَيْنَ الْاَغْنِيَٓاءِ مِنْكُمْۜ وَمَٓا اٰتٰيكُمُ الرَّسُولُ فَخُذُوهُ وَمَا نَهٰيكُمْ عَنْهُ فَانْتَهُواۚ وَاتَّقُوا اللّٰهَۜ اِنَّ اللّٰهَ شَد۪يدُ الْعِقَابِۢ</blockquote><blockquote>Allah’ın, (fethedilen) memleketlerin ahalisinden savaşılmaksızın peygamberine kazandırdığı mallar; Allah’a, peygambere, onun yakınlarına, yetimlere, yoksullara ve yolda kalmışlara aittir. O mallar, içinizden yalnız zenginler arasında dolaşan bir servet (ve güç) hâline gelmesin diye (Allah böyle hükmetmiştir). Peygamber size ne verdiyse onu alın, neyi de size yasak ettiyse ondan vazgeçin. Allah’a karşı gelmekten sakının. Şüphesiz, Allah’ın azabı çetindir.</blockquote><p>Diyanet İşleri Meali (Yeni)</p><p>Bazıları “Peygamber size ne verdiyse onu alın, neyi de size yasak ettiyse ondan vazgeçin.” ifadesini ayetin ortasından cımbızlayıp “Haşr suresi yedinci ayet bu” diyerek kendi tezlerini savunmaya çalışmaktadır. Oysaki en azından üç nokta koyarak ayetin <strong>sadece bir kısmının</strong> alındığını ifade etmeleri gerekir.</p><h4><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=19&amp;ayet=28">Meryem 19/28</a> Kuran Meryem’leri karıştırdı mı?</h4><blockquote>يَٓا اُخْتَ هٰرُونَ مَا كَانَ اَبُوكِ امْرَاَ سَوْءٍ وَمَا كَانَتْ اُمُّكِ بَغِيًّاۚ</blockquote><blockquote>“Ey Hârûn’un kız kardeşi! Senin baban kötü bir kimse değildi. Annen de iffetsiz değildi.”</blockquote><p>Diyanet İşleri Meali (Yeni)</p><p>Tevrat’a göre Hz. Harun ve Hz. Musa’nın Meryem adında bir ablaları vardır. [6] <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=19&amp;ayet=28">Meryem 19/28</a>’de Hz İsa’nın annesi olan Hz Meryem’e “<em>Harun’un kız kardeşi</em>” olarak hitap edilmektedir. Dolayısıyla Kuran’ın Hz Musa’nın ablası olan Meryem ile Hz İsa’nın annesi olan Meryem’i birbirine karıştırdığı iddia edilmektedir.</p><p>Arapça ve İbranice’de kardeş ifadeleri “<em>soyundan gelenler</em>” ya da “<em>aynı kavimden, sınıftan olanlar</em>” manası ile kullanılabilmektedir. Dolayısıyla kardeş kelimesinden kasıt birçok yerde biyolojik kardeşlik değildir. Kuran’da <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=46&amp;ayet=21">Ahkaf 46/21</a>, <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=29&amp;ayet=36">Ankebut 29/36</a>, <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=7&amp;ayet=65">Araf 7/65</a>, <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=11&amp;ayet=50">Hud 11/50</a> gibi daha birçok örnekler verilebilir. [5] Ayrıca Kuran’da Hz İsa ve Hz Musa’nın çağdaş olduğuna dair bir bilgi de yoktur. [7] Buna benzer bir üslüp Yeni Ahit’te de kullanılmaktadır. Matta 1:1’de “<em>İbrahim oğlu, Davut oğlu İsa Mesih …</em>” ifadesi geçmektedir. Matta 9:27’de “<em>İsa oradan ayrılırken iki kör, ‘Ey Davut Oğlu …’ </em>” ifadeleri kullanılmıştır. Son olarak Hz Meryem’in “Harun” isminde bir erkek kardeşi de olabilir.</p><h4><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=78&amp;ayet=33">Nebe 78/33</a> Kuran cennette tomurcuk göğüslü kızlar vaat ediyor mu?</h4><blockquote>وَكَوَاعِبَ اَتْرَابًاۙ</blockquote><blockquote>Memeleri tomurcuklanmış yaşıt kızlar var.</blockquote><p>Elmalılı Hamdi Yazır Meali</p><blockquote>müthiş uyumlu harika eşler, 16</blockquote><p>Muhammed Esed Meali</p><blockquote>Uyumlu (olgunlaşmış üzüm) taneleri [*],*</blockquote><p>Mehmet Okuyan Meali</p><p>Çok kısa olan ayettin birçok farklı yorumu vardır. Bazıları <a href="https://www.youtube.com/watch?v=jYekDII1RdE">bağlam gereği yumru şeklinde meyvelerin</a> olması gerektiğini söylemiştir. [8] Bazıları ise kelime dişil olmadığı için her iki cinse de verilecek eşlerden bahsedildiğini söylemektedir. [9,10]</p><h4><a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=2&amp;ayet=223">Bakara 2/223</a> Kuran kadına tarla diyor</h4><blockquote>نِسَٓاؤُ۬كُمْ حَرْثٌ لَكُمْۖ فَأْتُوا حَرْثَكُمْ اَنّٰى شِئْتُمْۘ وَقَدِّمُوا لِاَنْفُسِكُمْۜ وَاتَّقُوا اللّٰهَ وَاعْلَمُٓوا اَنَّكُمْ مُلَاقُوهُۜ وَبَشِّرِ الْمُؤْمِن۪ينَ</blockquote><blockquote>Kadınlarınız sizin ekinliğinizdir. Ekinliğinize dilediğiniz biçimde varın. Kendiniz için (geleceğe hazırlık olarak) güzel davranışlar takdim edin. Allah’a karşı gelmekten sakının ve her hâlde onun huzuruna varacağınızı bilin. (Ey Muhammed!) Mü’minleri müjdele.</blockquote><p>Ayette kadınların nesli devam ettirmek için bir imkan olduğundan bahsediliyor. Tarla ya da toprak bütün yiyeceklerimizi elde ettiğimiz hayat kaynağımızdır. Tarla ya da toprağa benzetme ile bir aşağılama söz konusu değildir. Zaman zaman “<em>toprak ana</em>” ifadesini ya da ingilizcede “<em>mother earth</em>” ifadesi de buna benzerdir.</p><h4>Kuran Lut kavminden önce eşcinsellik yoktu diyor</h4><blockquote>وَلُوطًا اِذْ قَالَ لِقَوْمِه۪ٓ اَتَأْتُونَ الْفَاحِشَةَ<strong> </strong>مَا<strong> سَبَقَكُمْ </strong>بِهَا مِنْ اَحَدٍ مِنَ الْعَالَم۪ينَ</blockquote><blockquote>Lût’u da Peygamber olarak gönderdik. Hani o kavmine şöyle demişti: “Sizden önce âlemlerden hiçbir kimsenin yapmadığı çirkin işi mi yapıyorsunuz?”</blockquote><p>Diyanet İşleri Meali (Yeni) <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=7&amp;ayet=80">Araf 7/80</a></p><blockquote>وَلُوطًا اِذْ قَالَ لِقَوْمِه۪ٓ اِنَّكُمْ لَتَأْتُونَ الْفَاحِشَةَۘ مَا <strong>سَبَقَكُمْ </strong>بِهَا مِنْ اَحَدٍ مِنَ الْعَالَم۪ينَ</blockquote><blockquote>Lût’u da peygamber olarak gönderdik. Hani o, kavmine şöyle demişti: “Gerçekten siz, sizden önce dünyada hiçbir toplumun yapmadığı bir hayâsızlığı işliyorsunuz.”</blockquote><p>Diyanet İşleri Meali (Yeni) <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=29&amp;ayet=28">Ankebut 29/28</a></p><p>Buradaki ifadelere baktığımızda Kuran’ın tarihsel olarak eşcinselliğin ilk defa Lut kavmi ile çıktığını iddia ettiği zannedilebilir. Ancak burada kullanılan sebega (س ب ق) köküne baktığımızda “<em>öne geçme</em>”, “<em>yarışıp öne geçme</em>” gibi anlamlarının olduğunu görüyoruz. “önce” manasında kullanılan yerlere baktığımızda da zaman nevinden bir erkenlikten ziyade önem olarak bir üstünlükten bahsedildiğini söyleyebiliriz. “<a href="https://www.youtube.com/watch?v=Vf6HORzObnY">Kuran’da tarih hatası (!) : Lut kavminden önce eşcinsellik vardı! | Araf 80, Ankebut 28</a>” [11] videosunda daha detaylı açıklamalar bulunabilir.</p><blockquote>لَوْلَا كِتَابٌ مِنَ اللّٰهِ<strong> سَبَقَ</strong> لَمَسَّكُمْ ف۪يمَٓا اَخَذْتُمْ عَذَابٌ عَظ۪يمٌ</blockquote><blockquote>“Eğer Allah’ın daha önce verilmiş bir hükmü olmasaydı, aldığınız şey (fidye)den dolayı size büyük bir azap dokunurdu”</blockquote><p>Diyanet İşleri Meali (Yeni) <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=8&amp;ayet=68">Enfal 8/68</a></p><p>Yukarıdaki ayette Allah’ın hükmünün vakit olarak önceden söylenmesinden ziyade kastedilenin “öncelikli ve üstün” hüküm olduğu anlaşılabilir.</p><p>Kuran’da “<em>daha önce</em>” anlamı gable ( ق ب ل) ifadesiyle verilir. Bu ifade Kuran’da <a href="https://kuranmeali.com/Kokler.php?kok=%D9%82%20%D8%A8%20%D9%84&amp;harf=%D9%82">294 kez geçer ve neredeyse her yerde “<em>önce</em>” manasında</a> geçer. Önceden gelip geçen kavimlerden bahsederken sıklıkla kullanılır. Örnek olarak aşağıdaki ayet verilebilir.</p><blockquote>يَٓا اَيُّهَا النَّاسُ اعْبُدُوا رَبَّكُمُ الَّذ۪ي خَلَقَكُمْ وَالَّذ۪ينَ مِنْ <strong>قَبْلِ</strong>كُمْ لَعَلَّكُمْ تَتَّقُونَۙ</blockquote><blockquote>Ey insanlar! Sizi ve sizden öncekileri yaratan Rabbinize kulluk ediniz ki, O’na karşı gelmekten korunmuş olabilesiniz.</blockquote><p>Diyanet İşleri Meali (Yeni), <a href="https://kuranmeali.com/AyetKarsilastirma.php?sure=2&amp;ayet=21">Bakara 2/21</a></p><p>Dolayısıyla burada tarihsel olarak bir öncelikten ziyade azgınlıkta ve günahta öne geçmekten bahsedilmesi daha mantıklıdır. Zaten helak edilen kavimlerin helak edilme sebebi de budur.</p><p>[1] Kur’an-ı Hakîm Meâli, İsmail Yakıt, Nisa 4/1 dipnot</p><p>[2] Kura’n Meal-Tefsir, Mehmet Okuyan, Nisa 4/34</p><p>[3] Kura’n Meal-Tefsir, Mehmet Okuyan, Ahzab 33/28</p><p>[4] Kura’n Meal-Tefsir, Mehmet Okuyan, Tahrim 66/1</p><p>[5]<a href="https://tulipandrose.net/allah-kuranda-meryemleri-mi-karistirmis/">https://tulipandrose.net/allah-kuranda-meryemleri-mi-karistirmis/</a></p><p>[6] <a href="https://www.youtube.com/watch?v=qgDMB9iQ5Lk">https://www.youtube.com/watch?v=qgDMB9iQ5Lk</a></p><p>[7] <a href="https://www.youtube.com/watch?v=sd8t7MDIF84">https://www.youtube.com/watch?v=sd8t7MDIF84</a></p><p>[8] Kura’n Meal-Tefsir, 8. baskı Ağustos 2021, Mehmet Okuyan, Nebe 78/33 dipnot 1</p><p>[9] <a href="https://kuranmeali.com/Aciklama.php?meal=islamoglu&amp;sureno=78&amp;ayet=33">https://kuranmeali.com/Aciklama.php?meal=islamoglu&amp;sureno=78&amp;ayet=33</a></p><p>[10] <a href="https://kuranmeali.com/Aciklama.php?sureno=78&amp;notno=16">https://kuranmeali.com/Aciklama.php?sureno=78&amp;notno=16</a></p><p>[11] <a href="https://www.youtube.com/watch?v=Vf6HORzObnY">https://www.youtube.com/watch?v=Vf6HORzObnY</a></p><p>[12] 101 Soruda Kur’an, Emre Dorman, Sayfa 403 https://www.emredorman.com/wp-content/uploads/2021/02/Emre-Dorman-101-Soruda-Kuran_BASKI-.pdf</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9da3ccbae2d7" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Developing a Neo4j User-Defined procedure: Breadth-First Search with depth]]></title>
            <link>https://canbax.medium.com/developing-a-neo4j-user-defined-procedure-breadth-first-search-with-depth-206eb5b35ad1?source=rss-5812122afdba------2</link>
            <guid isPermaLink="false">https://medium.com/p/206eb5b35ad1</guid>
            <category><![CDATA[graph-database]]></category>
            <category><![CDATA[breadth-first-search]]></category>
            <category><![CDATA[neo4j-graph-database]]></category>
            <category><![CDATA[neo4j]]></category>
            <category><![CDATA[graph-algorithms]]></category>
            <dc:creator><![CDATA[Yusuf CANBAZ]]></dc:creator>
            <pubDate>Sat, 15 Aug 2020 21:00:12 GMT</pubDate>
            <atom:updated>2020-08-31T12:48:00.660Z</atom:updated>
            <content:encoded><![CDATA[<h3>Developing a Neo4j User-Defined procedure</h3><h4>implementing and debugging Breadth-First Search with depth in a real Neo4j database</h4><h4>Database and Data</h4><p><a href="https://neo4j.com/"><em>Neo4j</em></a><em> </em>is a popular graph database software. Neo4j provides a database querying language called <a href="https://neo4j.com/developer/cypher/"><em>Cypher</em></a>. Using <em>Cypher </em>you can make queries which are very similar to SQL.</p><pre>// SQL query which simply returns 10 users from &quot;User&quot; table<br>SELECT * FROM User LIMIT 10<br>// Cypher query which returns 10 nodes which are labeled as &quot;User&quot;<br>MATCH (n:User) RETURN n LIMIT 10</pre><p>Although <em>Cypher</em> is pretty powerful and descriptive, you might want to run your own algorithms and make your own traversals. For this reason, <em>Neo4j</em> provides a way for writing your own functions/procedures with <a href="https://neo4j.com/developer/cypher/procedures-functions/">user-defined procedures and functions</a>.</p><p>I will show you all you need from zero in this post. First, you need a Neo4j database. You can use <a href="https://neo4j.com/download/">Neo4j Desktop</a> to install and start the database. You can also visualize your database through Neo4j Browser.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/819/1*78Y5RGuIr95Y1--iUSR_tg.png" /><figcaption>Figure 1: Neo4j Desktop seems like this in windows 10 machine</figcaption></figure><p>When you start Neo4j Desktop, you will see a list of databases.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*bphIWFlWB6MDY9UqWyfBtQ.png" /><figcaption>Figure 2: list of databases</figcaption></figure><p>You can add/remove a database. For this post, I generated a new database called “movie”.</p><p>You can observe your database from an Internet browser. By default, the database will use the port 7474. Go and open your Internet browser and type <a href="http://localhost:7474.">http://localhost:7474.</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*KbG_HXifTk4z7J0rvPicbA.png" /><figcaption>Figure 3: viewing database from an Internet Browser</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/323/1*ja76A2adCIK_ByX0eEsaxQ.png" /><figcaption>Figure 4: an active neo4j database shown in Neo4j Desktop</figcaption></figure><p>You can also open <em>Neo4j Browser. </em>It will open simply the same screen. Here the version number of the database is important. Probably you should use 3.5 version of Neo4j.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*hvuyLdxc3AS-mD_PvP5DYw.png" /><figcaption>Figure 5: Bring a subgraph using Neo4j Browser</figcaption></figure><p>Now, the database does not have any data. By typing :play movie-graph and following the instructions, you should have a small database that contains 171 nodes and 253 edges (relationships). You can visualize and query your data. <em>Cypher </em>code match p=(n)-[e]-&gt;(n2) return p limit 10 will bring 10 random paths from the database.</p><h4>Dependencies for development</h4><p>Now we have database and data. We can start implementing our neo4j procedure. There is a template for jumpstarting neo4j procedures. You can check <a href="https://github.com/neo4j-examples/neo4j-procedure-template">the GitHub repository</a>. I want to set a name for my repository. So I’m not forking it. I will download the codes as a ZIP file. So that I can start my own git repository.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1017/1*7bJI-dAEvK8CEmPyHDdbbA.png" /><figcaption>Figure 6: setting path to JDK inside IntelliJ</figcaption></figure><p>Neo4j uses java. To develop a neo4j procedure, I will use <a href="https://www.jetbrains.com/idea/download">IntelliJ IDEA community edition.</a> I first tried to use <a href="https://code.visualstudio.com/">Visual Studio Code</a> with java extension. But it does not support Java 8. For this reason, I used IntelliJ. I installed Java 8 from <a href="https://adoptopenjdk.net/">AdoptOpenJDK</a>. Inside IntelliJ go to File&gt;Project Structure and add the path to your JDK folder.</p><h4>Implementation</h4><p>Now we are ready for implementation of the algorithm. <a href="https://en.wikipedia.org/wiki/Breadth-first_search">Breadth-First Search</a> (BFS) is a well-known algorithm for traversing graph data structures. You can observe the pseudocode for BFS below. BFS uses <a href="https://www.geeksforgeeks.org/queue-data-structure/">queue data structure </a>for traversal.</p><pre>// <em>src</em> is the starting node for traversal<br>1  <strong>procedure</strong> BFS(<em>src</em>) <strong>is</strong><br>2      <em>Q &lt;- empty queue</em><br>3      <em>visitedNodeSet </em>= {<em>src</em>} // a set of nodes<br>4      <em>Q</em>.enqueue(<em>src</em>)<br>5      <strong>while</strong> <em>Q</em> is not empty <strong>do</strong><br>6          <em>v</em> := <em>Q</em>.dequeue()<br>7          <strong>for all</strong> edges from node <em>v</em> to another node <em>w </em><strong>do</strong><br>8              <strong>if</strong> <em>w</em> not in <em>visitedNodeSet</em> <strong>then</strong><br>9                  add <em>w</em> to <em>visitedNodeSet</em><br>10                 <em>Q</em>.enqueue(<em>w</em>)<br>11    return <em>visitedNodeSet</em></pre><p>This algorithm is a well-known standard algorithm. Isn’t it look boring ;) So let’s make some customizations on this algorithm.</p><p>This algorithm finds all the connected nodes from a starting node. Here my aim is instead of finding a node, I want to find a <em>subset of the graph. </em>For this reason, I will keep track of the depth of the traversal. Also, instead of making a traversal from a single node, we can make a traversal from a set of nodes.</p><pre>1   <strong>procedure</strong> BFS(ids, depthLimit, isDirected) {<br>2       // always return the source nodes    <br>3       o = {nodes: {ids}, edges: {}}<br>4       direction = <em>BOTH</em><br>5       <strong>if</strong> isDirected <strong>then</strong><br>6           direction = <em>OUTGOING</em><br>7       queue = {}<br>8       visitedNodes = {ids}<br>9       currDepth = 0<br>10      cntElementsInQueueFromUpperLevel = 0<br>11      isFirstElemInLevel = true<br>12      <strong>while</strong> queue is not empty <strong>do<br></strong>13<strong>          if</strong> cntElementsInQueueFromUpperLevel == 0 <strong>then</strong><br>14              currDepth++<br>15              isFirstElemInLevel = true<br>16          <strong>if</strong> currDepth &gt;= depthLimit + 1 <strong>then</strong><br>17              break<br>18          n1 = queue.pop()<br>19          cntElementsInQueueFromUpperLevel--<br>20          <strong>for all</strong> neighbors of n1 with respect to direction <strong>do</strong><br>21              <strong>if</strong> visitedNodes contains n2 <strong>then</strong><br>22                  continue<br>23              <strong>if</strong> isFirstElemInLevel <strong>then</strong><br>24                  cntElementsInQueueFromUpperLevel = queue.size()<br>25                  isFirstElemInLevel = false<br>26              visitedNodes.add(n1)<br>27              queue.add(n2.getId())<br>28              o.edges.add(e)<br>29              o.nodes.add(n2)<br>30      <strong>return</strong> o</pre><p>You can check the <a href="https://github.com/canbax/neo4j-procedure-BFS">real java codes in my repository</a>.</p><h4>Testing</h4><p>Testing your code is always essential. You can see many small bugs that are hiding. Since you need data for testing, you can either generate mock data or use an already existing database.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*gpC5SZIZvJsJ-qAFpK1P1A.png" /><figcaption>Figure 7: Debugging the procedure in InteliJ</figcaption></figure><p>Both IntelliJ and neo4j are very helpful for testing and debugging. You can run a neo4j database instance, generate some mock data with cypher and call your own procedure in this instance. You can also debug during testing. You can go inside your implementation.</p><p>Generating mock data might not be enough. You might need big data to see the realistic performance of your procedure. If you connect to an existing and running neo4j database instance, you should do a little bit more.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Z71MJkHcuE8Rbvf5DAVh8Q.png" /><figcaption>Figure 8: Main folder of a database</figcaption></figure><p>Go to the database in Neo4j Desktop. Click to “<em>Open Folder</em>”. Go to the “<em>plugins</em>” folder. Here you should put the JAR file that is generated from building your project. Also, you should restart the database to see that your procedure is active.</p><p>The project should be build using “<em>package</em>” command from “<em>Maven</em>” view of IntelliJ.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7sD6I8kP2JuQ858t0dxPhw.gif" /><figcaption>Figure 9: Running the procedure in a real neo4j database</figcaption></figure><p>Figure 9 shows that movie with id 0 is the movie called “The Matrix”. Then we make calls to our own neo4j procedure. It returns a subgraph.</p><h4>Debugging</h4><p>I can debug using mock data. But what happens if I want to debug a big neo4j database. Neo4j database uses the JAR file for calling my procedure. Somehow I should debug that JAR file. To do that, I should do 2 things.</p><p>Add</p><p>dbms.jvm.additional=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005</p><p>to your neo4j.conf file. This file is inside the conf folder of your main database folder. (shown in figure 8) Restart your database to activate the configuration.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*kXs1DIVzOI-eR7Bva20e-g.png" /><figcaption>Figure 10: A new configuration for remote debugging in IntelliJ</figcaption></figure><p>Add a new <em>Run/Debug Configuration </em>inside IntelliJ. Just use the defaults. We will connect to port 5005 as we indicated in neo4j.conf file configuration.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*xXKZUB0QnzpjZzidiLXC8g.gif" /><figcaption>Figure 11: Yes we can debug a real neo4j database</figcaption></figure><p>I searched a bit to debug a real neo4j database. I couldn’t <a href="https://stackoverflow.com/questions/62952768/attach-debugger-to-neo4j-procedure-jar">find any answer on the Internet</a>. I hope this post will be helpful.</p><h4>Bonus Question</h4><p>Let’s say that there is a bug in a production server. And you can not run IntelliJ/Java in the production server. You check all your tests. They all pass but somehow there is a problem with this particular database server and this particular case. How do you debug?</p><p>Answer: You can export only the problematic portion of the production database. Only the interesting part of the graph. To do this I used <a href="https://github.com/neo4j-contrib/neo4j-apoc-procedures">Apoc</a>. Apoc contains lots of functions/procedures which are useful. It is also a <em>plugin </em>just like we did now.</p><pre>CALL apoc.export.cypher.query(&quot;match (n)-[r]-&gt;(n2) return * limit 100&quot;, &quot;subset.cypher&quot;,<br> {format:&#39;plain&#39;,separateFiles:false, cypherFormat: &#39;create&#39;, useOptimizations:{type: &quot;NONE&quot;, unwindBatchSize: 20}})<br> YIELD file, batches, source, format, nodes, relationships, time, rows, batchSize<br> RETURN file, batches, source, format, nodes, relationships, time, rows, batchSize;</pre><p>When you execute match (n)-[r]-&gt;(n2) return * limit 100 you will see a subgraph. The above script lets you export the subgraph that you see. It generates a script that generates the data.</p><p>So you should first write a cypher which brings the interesting/problematic subgraph. Then using Apoc, you can generate a cypher script to generate the subgraph. That’s my solution.</p><p>All my codes are available through Github. <a href="https://github.com/canbax/neo4j-procedure-BFS">https://github.com/canbax/neo4j-procedure-BFS</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=206eb5b35ad1" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Yet Another Calculator]]></title>
            <link>https://canbax.medium.com/yet-another-calculator-3e6a5048c948?source=rss-5812122afdba------2</link>
            <guid isPermaLink="false">https://medium.com/p/3e6a5048c948</guid>
            <category><![CDATA[personal-project]]></category>
            <category><![CDATA[open-source]]></category>
            <category><![CDATA[calculator]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[productivity]]></category>
            <dc:creator><![CDATA[Yusuf CANBAZ]]></dc:creator>
            <pubDate>Sun, 12 Jul 2020 19:17:37 GMT</pubDate>
            <atom:updated>2020-07-12T19:17:37.778Z</atom:updated>
            <content:encoded><![CDATA[<p>In this post, I will introduce my simple web-based calculator <a href="https://github.com/canbax/hasap">Hasap</a> and I will briefly talk about why I built it.</p><p>People are using/building calculators for a long time. Abacus is one of the very early calculators.</p><figure><img alt="abacus" src="https://cdn-images-1.medium.com/max/700/1*T5klDxTlgtifyYkUcmRlOw.jpeg" /></figure><p>According to Wikipedia, it is as old as 5000 years. Now we have advanced calculators that could solve mathematical expressions and equations.</p><figure><img alt="casio calculator" src="https://cdn-images-1.medium.com/max/1000/1*OsOr-4MPoM8lQGxy_s664w.jpeg" /></figure><p>When I need to perform some math calculations on a computer, most of the time I use <a href="https://www.google.com/search?q=1+%2B+2">google</a> or <a href="https://duckduckgo.com/?q=1+%2B+2">duckduckgo</a>. I won’t do advanced things. I just need to make simple calculations. I expect them to be useful and user-friendly but I get angry when they couldn’t do what I wanted properly.</p><p>For example, let’s calculate <em>`sin(30-sin(90))`</em> by using the degree as angle units.</p><figure><img alt="google can’t compute a basic trigonometric calculation using degree as angle unit" src="https://cdn-images-1.medium.com/max/853/1*KIJ2O5lX3SzhqPru854CIg.gif" /></figure><p>You can see that even if I click on <em>`Deg`</em> button, the calculations do not change. It should result in something close to 0.5. It is annoying that it can’t perform such a simple thing. Isn’t it?</p><p>I also tried duckduckgo.</p><figure><img alt="duckduckgo can’t calculate the same expression as well" src="https://cdn-images-1.medium.com/max/1007/1*13SSWFwECsqyXS0DZ4TLMg.gif" /></figure><p>As you can see, it does not give any output. That’s even worse.</p><p>I also tried the <a href="https://github.com/Microsoft/calculator">default calculator app in windows 10 operating system</a>. It is awesome. It is open-source. It looks neat and it has a sleek user interface. It has many functionalities. It is very rich in terms of functionality.</p><p>But let say I’m calculating this long-expression.</p><p>sin(30)+cos(45-tan(23)) + e² + 1</p><figure><img alt="Firstly, I should type `30` and then I should press to `sin`. This is simply not intuitive." src="https://cdn-images-1.medium.com/max/378/1*67h8YZz0os8W8TPKm0THEQ.gif" /></figure><p>Firstly, I should type <em>`30` </em>and then I should press to <em>`sin`.</em> This is simply not intuitive. I want to calculate <em>`sin(30)`. </em>I feel like I should type<em> `sin`</em> first.</p><p>Secondly, I don’t even know how could I enter a nested expression in one line. Here I want to enter <em>`cos(45-tan(23))` </em>but I should calculate the result of <em>`tan(23)`</em> first and then remove it from<em>`45` </em>and then I should call<em> `cos` </em>function<em>.</em> What happens if I should have typed <em>`24` </em>instead of <em>`23`. </em>I should make all these calculations again. That sucks.</p><p>Thirdly, I would like to copy and paste things and get results. I can copy the results with right-click and copy. That’s good but not enough for me.</p><p>So as an angry developer and user I said “let’s build a calculator for myself” That’s why I built <a href="https://canbax.github.io/hasap/">Hasap</a>. I believe a calculator which exists for more than 5000 years should be user-friendly, intuitive, and handy.</p><p>Firstly, <a href="https://canbax.github.io/hasap/">Hasap</a> is web-based you can simply use it from any web browser.</p><p><a href="https://canbax.github.io/hasap/">Hasap</a> is a <a href="https://en.wikipedia.org/wiki/Progressive_web_application"><em>PWA</em></a><em> </em>You can download it use it without the Internet connection.</p><p><a href="https://canbax.github.io/hasap/">Hasap</a> does not have <em>`=`</em> button. Why I should press a button to see the results of my simple math expressions. I have a processor that can make 10⁹ calculations every second (I know you all have). Its clock speed is around Gigahertz, it can calculate expressions as soon as I press a button. I think that’s necessary. I think people deserve to utilize their powerful processors like this ;)</p><p><a href="https://canbax.github.io/hasap/">Hasap</a> uses <a href="https://mathjs.org/"><em>math.js</em></a> for calculating expressions. So it has all the functions defined in <em>math.js </em>such as <em>isPrime</em>, <em>ceil</em>, <em>cube</em>, etc… I find <a href="https://mathjs.org/"><em>math.js</em></a> very useful and generous effort.</p><p>In <a href="https://canbax.github.io/hasap/">Hasap</a>, you can copy-paste expressions or results of the expressions.</p><p>It has four modes: “<em>standard”</em>, “<em>extended”</em>, “<em>programmer”</em>, and “<em>date &amp; time”. “date &amp; time”</em> mode provides facilities to calculate things related to date and time. Firstly, in this mode results are shown in 2 different formats. There will be a result in the format of a date and another result in the form of a human-readable time unit. Here you can calculate things like that is the date after 11 days from now. Or you can see the time difference between 2 dates.</p><p>One of the use cases might be this. Let’s say my visa is valid for 90 days, and I’m planning to buy round-trip flight tickets. If the date of my first ticket is 10 November 2020, when should I buy my return ticket? That’s an important question because if you take your ticket 1 day late, you might get a little trouble. (trust me I did;)</p><figure><img alt="10th of November 2020 plus 90 days" src="https://cdn-images-1.medium.com/max/796/1*2YfqPgVjmnhIJ_bOeJ_JVw.gif" /></figure><p>As you see from the above image, I should buy the ticket for the 8th of February at the latest. Since how they count the days and hours might change, it is best to buy the ticket for the 7th of February.</p><p>Another use case that I use is to estimate the execution time for a program. Let’s say I coded a program that takes 135 milliseconds to complete. If I need to run this program 1000 times, how much time should I wait?</p><figure><img alt="image for 135 milliseconds repeated 1000 times takes 2 minutes 15 seconds" src="https://cdn-images-1.medium.com/max/796/1*FjzvCDyuCj53wIVR2p0QoQ.gif" /></figure><p>As you can see from the image above, it takes 2 minutes and 15 seconds.</p><p><em>“standard” </em>mode and “<em>extended”</em> mode are very similar. Only the virtual keyboard changes. In “<em>programmer”</em> mode, you can make calculations in 4 different bases and see the results in 4 different bases. I inspired this from windows 10 calculator. I think they did a good job there.</p><h4>Challenging things</h4><ul><li>math.js does not support changing the angle unit in trigonometric functions. It always accepts radians. (I generated <a href="https://github.com/josdejong/mathjs/issues/1737">an issue</a> for this) So I have to manually change all the values inside trigonometric expressions. This might look easy but expressions might be nested. So, for this reason, I have to use <a href="https://en.wikipedia.org/wiki/Topological_sorting">topological sorting</a> and after that, I have to change values in the topological order.</li><li>In the “<em>date &amp; time”</em> mode, I wanted to show <a href="https://material.angular.io/components/chips/overview">chips</a> and standard input together. I wanted to use chips for dates. Dates are represented as <a href="https://en.wikipedia.org/wiki/Unix_time">unix time</a>. I wanted to hide their actual values and show human-readable strings. This might be particularly useful for hiding real values and showing human-readable strings. I did ask <a href="https://stackoverflow.com/q/61301055/3209523">a question on StackOverflow</a>. It seems like I should build my own angular component for this.</li><li>I wanted to EXACTLY sync pressing of a real key and pressed effect of a virtual button. I see that there is a small glitch in windows 10 app. I see that I should make a debounce time for pressing buttons greater than 500 ms. (I know almost no one will recognize this, but I spent lots of time on this and it is there ;)</li></ul><figure><img alt="I’m always pressing the button “1&quot;, but it is not showed as pressed always." src="https://cdn-images-1.medium.com/max/320/1*3K9rsLTw56Kh9I2hTyVuZg.gif" /></figure><p><a href="https://github.com/canbax/hasap">Hasap</a> is open-source. It built with <a href="https://angular.io/">angular </a>and <a href="https://material.angular.io/">material theme</a>. I always find <a href="https://material.angular.io/">material theme</a> pretty nice and intuitive to use. I think <a href="https://angular.io/">angular</a> is advanced and organized to make maintainable and stable projects. That’s why I used them. I hope <a href="https://github.com/canbax/hasap">Hasap</a> will be useful for humans. At least, I used it from time to time ;)</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3e6a5048c948" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>