Postgresql'de kullanıcı yönetimi

Bu yazıda Postgresql için, aklımızda mutlaka yer edinmesi gereken kullanıcı yönetim işlemlerini derledim. Kullanıcı oluşturmak Superuser kullanıcısı oluşturmak Superuser kullanıcıları Postgresql’de (bundan sonra Postgres diyeceğim), tüm yetkilere sahip kullanıcılardır. İlk metodda bunu Postgres ile birlikte gelen createuser programını kullanarak yapacağız. Bu program (veya komut da denebilir) Postgres için kullanıcılar açmak için kullanılmaktadır. Bence ismi fazla jenerik olduğu için Linux’taki adduser ile karıştırılabilmesi muhtemeldir. sudo -u postgres /bin/bash createuser --superuser --login --pwprompt dual Program hakkında daha fazla bilgi edinmek için man createuser komutunu kullanabilirsiniz....

10 Eylül 2022

Basit bir FastCGI uygulaması yapalım

Bu yazıda, C dilini kullanarak basit bir FastCGI web uygulaması yapacağız. Uygulamamız FastCGI kütüphanesini kullanarak, açtığımız socket üzerinden nginx web sunucusu ile haberleşerek çalışacak. FastCGI, CGI protokolündeki bazı eksikliklerden yola çıkılarak geliştirilmiş, açık standartlı bir CGI alternatifidir. Bu protokol, web sunucuları ile bilgisayar programları arasında bağlantı kurulabilmesi için tasarlanmıştır. Web sunucuları, bu protokol üzerinden programlara; istek methodu, istek adresi, sorgu parametreleri ve kullanıcı IP’si başta olmak üzere pek çok veriyi aktarabilirken, programlar da web sunucularına dönülecek yanıtları aktarmaktadır....

6 Haziran 2022

OpenSearch kurulumu

Bu yazıda OpenSearch’ten ve onun kurulumundan, ayrıca Elasticsearch ile arasındaki bağlantıdan söz edeceğim. Kullanımı hakkında daha fazla bilgi için Elasticsearch ile ilgili yazdığım bu yazıya göz atabilirsiniz. Öncelikle Elasticsearch neydi; kayıtların yüksek performanslı olarak aranabilmesini sağlayan NoSQL bir veritabanıydı. Elasticsearch, ücretsiz olmasının yanı sıra ücretli commercial çözümler de sunan bir şirkettir aynı zamanda ve şirketin ticari amaçlı olarak hizmet verdiğini de unutmamak gerekir. Elasticsearch tek başına ücretsiz de olsa, barındırdığı birçok plugin ve kendisine entegre edilebilecek diğer yazılımlar için lisans ücreti ödenmesi gerekmektedir....

11 Kasım 2021 · Son güncellenme: 30 Ocak 2023

Redis ile queue sistemi yapımı

Bu makalede Redis kullanarak first-in first-out (FIFO) mantığıyla çalışan, basit bir queue sistemi yapacağız. Queue sistemini sıralı olarak yapılmasını istediğimiz görevler için kullanırız. Bir görevi kuyruğa dahil ettikten sonra sırası geldiğinde kesin olarak çalışmasını bekleriz. Mesela uzun sürecek görevlerin mevcut yazılımın kontrol akışını bloke etmeden yapılabilmesini istiyorsak queue sistemini kesinlikle kullanmamız gerekir. Redis, queue sistemi için biçilmiş bir kaftandır. Bunun performans ve işlem yetenekleri konusundaki becerilerinden faydalanacağız. Queue sistemi basittir; ilk önce kuyruğa yapılması için yeni bir görev eklenir, daha sonra kuyruktan sırası gelen bir görev tamamlanır ve sıradaki göreve geçilir....

21 Eylül 2021

NFS (dosya sistemi) kurulumu

NFS yani Network File System, uzaktaki bir bilgisayara ait dosya sistemini kendi bilgisayarımızda mount edebilmemizi sağlayan bir standarttır. Bu yazıda, Ubuntu tabanlı bir sunucuya NFS sunucusu kuracağız ve birkaç farklı işletim sistemine sahip kişisel bilgisayarlardan bu dosya sistemine erişeceğiz. NFS bize neler vadeder? Merkezi bir depolama sistemi oluşturmak için standart bir çözüm sunar. Client’lar, uzaktaki dosya sistemine local’deki bir dosya sistemi gibi erişebilir. Client’ların hangi dosya sistemine sahip olduğu önemli değildir....

10 Eylül 2021

Modemin WAN şifresini bulmak

Bazı internet servis sağlayıcıları (ISP), dağıttığı router’ların dışında başka bir router kullanılmaması için PPPoE şifresini veya yaygın olarak bilinen diğer adıyla WAN şifresini kullanıcılarından gizleyebiliyor. Hizmet aldığım bir ISP, router’ın admin arayüzünde ONT cihazı ile yetkilendirme için gerekli olan PPPoE şifresini kullanıcılardan gizlemekte. Bu sebeple şifresini bilmeden farklı bir router kullanmak mümkün olmuyor. Bir gün farklı bir modem kullanmak durumunda kalınca PPPoE şifresini öğrenmek zorunda kaldım. Fakat nasıl yapıldığını göstermeden önce neyin ne olduğunu anlatmak istiyorum....

24 Haziran 2021

Android emülatörünü mitmproxy ile çalıştırmak

mitmproxy, HTTP bağlantılarını debug etmek için kullanılan bir çeşit açık kaynak araçtır. Bu araç bize, debug edilecek bağlantının arasına sokabileceğimiz bir proxy oluşturur ve proxy ettiği bağlantıya ait HTTP isteklerini bize sunar. Bu yazıda bir Android emülatörü ile mitmproxy’i nasıl birlikte kullanabileceğimizi göstereceğim. Buradan önce mitmproxy’nin son sürümünü indiriyoruz. Linux ve macOS için binary’lerini indirelim ve uygun bir yere çıkartalım. sudo tar -xzf mitmproxy-x.x.x-xxxxxx.tar.gz -C /usr/local/bin Konsoldan mitmweb -p 8080 komutunu gönderdiğiniz zaman 8080 portunda bir proxy servisi başlatılacaktır....

23 Nisan 2021

Dosya türleri nasıl çalışır?

Bilgisayar sistemlerinde her dosya türü farklı amaçlarla kullanılır. Genelde mov ve avi gibi dosya türleri video’larda kullanılırken, png, jpg ve gif ise görseller için kullanılmakta. Fakat dosya türlerinin farklılıkları sadece isimleriyle kalmıyor. Her dosya türünün kendine özel specification’ları bulunur; yani ilgili dosya türünün nasıl encode ve decode edileceğini belirten bir dökümantasyona sahiptir. İnsanlara göre dosya türleri text ve binary olarak ikiye ayrılırken bilgisayar tarafından hepsi bit’lerden oluşan birer dosya olarak görülür....

2 Haziran 2020

Wireguard kurulumu ve kullanımı

Wireguard son günlerde popüler hale gelen bir VPN yazılımıdır. OpenVPN’e göre çok daha performanslıdır ve kurulumu daha kolaydır. Wireguard ile iki farklı ağı birbirine sanal olarak bağlayabilirsiniz. Çok uzatmadan kuruluma geçelim. Wireguard’ın kendi sitesinden kendi platformunuza uygun olanı kurun: https://www.wireguard.com/install/ Örnek olarak sunucumuz Ubuntu ise, dökümanlarda anlatılan kuruluma göre yapalım: sudo add-apt-repository ppa:wireguard/wireguard sudo apt-get update sudo apt-get install wireguard Bu arada Linux header modülleri yüklü değilse bunu da kurmayı unutmayın....

2 Nisan 2020

Bilgisayarlar nasıl rastgele sayı üretebilir?

Bilgisayarlar, aritmetik işlemleri bir insandan çok daha hızlı şekilde hesaplayabilmesi amacıyla tasarlanmıştır. Bilinen ilk bilgisayar milattan önce Çin’de, bizim “abaküs” olarak bildiğimiz basit bir makine olarak icad edilmişti. Gün geçtikçe daha gelişmiş makinelere ihtiyaç duyuldu. Mekanik hesap makinesi denilen, içerisinde çarklar dolu bir makine kullanılmaya başlandı. The Imitation Game filminde anlatılan ortaya çıkış hikayesinde olduğu gibi, zamanın mevcut imkanlarıyla yapılan hesaplamaların da artık yetersiz kalmasıyla, yeni çözümler aranmaya başlandı. İşte modern bilgisayarlar bundan sonra ortaya çıktı....

14 Mart 2020

Linux'ta servis oluşturmak

Linux’ta servisler, uygulamaların arkaplanda asenkron biçimde çalışmalarını sağlar. Web uygulama veya yazdığınız herhangi bir sistem yazılımı, servisler sayesinde sistemle birlikte otomatik olarak açılıp, arkaplanda çalışır hale getirilebilirler. Servisleri pratikliğinden dolayı genelde “systemd” isimli bir program kullanarak oluşturmaktayız. Ubuntu, Debian, Fedora, Arch Linux, Gentoo, RHEL/CentOS gibi birçok platformlarda varsayılan olarak yüklü gelmektedir. systemd yalnızca servis değil; soket, aygıt, mounting ve swapping gibi pek çok farklı kaynak türleri için kullanılabilmektedir, fakat bu yazıda sadece servis özelliğinden bahsedeceğiz....

10 Temmuz 2019 · Son güncellenme: 12 Ekim 2021

Raspberry Pi'yi IP kamera yapmak

Bugün uğraşmayı çok sevdiğim Raspberry Pi ile yaptığım bir başka proje daha; RaspiCam. Raspberry Pi kullanarak hobi amaçlı ya da gizli güvenlik kamerası yapabilirsiniz. Bunun için bize Raspberry Pi ve kamera modülü gerekiyor. İlk önce yayın sunucumuzu ayarlayalım. Bu sunucu Raspberry Pi’nizin kendisi de olabilir, uzak bir sunucu da. Yayına yerel ağ dışından erişecekseniz, bağlantı problemleri yaşamamak için uzak bir sunucu kullanmanızı öneririm. Aksi taktirde Raspberry Pi’niz yeterli olacaktır. Yayınları RTMP protokolü kullanarak yapacağız....

18 Mayıs 2019

Elasticsearch nedir?

İlişkisel veritabanları (RDBMS), indexlenmiş veriler dışındaki aramalarda oldukça yavaş bir arama performansı sağlar. Bu da e-ticaret ya da büyük ölçekli bir proje için istenmeyen bir durum oluşturmaktadır. Elasticsearch, büyük veriler arasında hız kaybı yaşanmadan arama yapılmasını sağlayan döküman tabanlı, NoSQL bir veritabanıdır. Elasticsearch’ın yapılma amacı aramalardaki bu kritik sorunun çözümünü sağlamaktır. Elasticsearch ilk olarak, Apache Software Foundation’ın Lucene isimli belge arama kütüphanesi kullanılarak yapılmaya başlanmış ve 2010 yılında ortaya çıkmış. Java diliyle yazıldığı için her platformda çalışabilecek şekilde ölçeklenebilmektedir....

9 Mayıs 2019

Minio ile Amazon S3 sunucusu oluşturmak

Amazon AWS’deki popüler servislerden birisi olan S3, projelerimizin statik dosya barındırmasına büyük yardımı dokunan bir servistir. AWS S3’te dosyalara yapılan sorgu sayısına ve kapladığı alana göre fiyatlandırma uygulanmaktadır. Neredeyse her dil için kütüphanesi bulunduğundan, her yere kolaylıkla entegre edilebiliyor. Minio ise, S3’ün protokolünü kullanarak tıpkı S3 gibi davranan bir yazılımdır. Bu yüzden entegre etmek için herhangi bir S3 kütüphanesini kullanabiliyorsunuz. Böylece AWS’ye gerek kalmadan S3 protokolü ile geliştirme yapabilirsiniz veya dosya barındırma sistemini kendi altyapınız üzerinden canlı ortamda kullanabilirsiniz....

19 Aralık 2016 · Son güncellenme: 9 Ekim 2021

Telegram botu yapımı

Botlara son zamanlarda internette sıkça rastladığımızı söyleyebiliriz. Telegram ve Facebook’un geliştiriciler için Bot API’leri oluşturduğunu duyurmasını, şirketlerin ve uygulamaların kendi botlarını oluşturmasını, geleceğin yapay zeka dünyasına adım atmak olarak yorumluyorum. Telegram botunu yapmaya, Telegram’a girerek başlayalım. Kişi arama bölümüne “botfather” yazalım. Bu bot, Telegram’ın geliştiricilere sunduğu resmi bottur. Kişiyi ekledikten sonra konuşma açıp /start diyoruz. Bu esnada bize gönderebileceğimiz komutları listeleyecektir. Yeni bir bot oluşturacağımız için ilk olarak /newbot komutunu gönderiyoruz....

27 Temmuz 2016

SQLCipher kullanımı

SQLCipher, SQLite veritabanlarımız için bir şifreleme yazılımıdır. SQLCipher genellikle, dağıttığımız uygulamalardaki SQLite veritabanlarını başkalarının okuyup değiştirebilmesini engellemek amacıyla şifrelemek için kullanılır. Örneğin bir Android uygulaması yaptınız ve uygulamadaki SQLite veritabanınında başkalarının okumasını istemediğiniz veriler var ya da oyununuzun verilerinin başkaları tarafından değiştirilip hile yapılmasını engellemek istiyorsunuz. O zaman SQLCipher tam size göre. OpenSSL kuruyoruz (OS X’e göre): curl -o openssl-1.0.2g.tar.gz https://www.openssl.org/source/openssl-1.0.2g.tar.gz tar xzf openssl-1.0.2g.tar.gz cd openssl-1.0.2g /Configure darwin64-x86_64-cc make make install brew link openssl --force </code></pre> Şimdi SQLCipher kuralım:...

27 Haziran 2016