"Enter"a basıp içeriğe geçin

Efe Çiftci Yazılar

Enhancing Home Automation: KDE Plasma and Yeelight Bulbs

I purchased a couple of Xiaomi Smart Led Bulbs a few years ago. In the beginning, it was fun to control the bulbs using a mobile application. However, as someone who spends most of his day in front of a computer, I gradually started feeling uncomfortable using my mobile phone to control the bulbs.

After some research, I’ve discovered that the bulbs can also be controlled from other devices in the same network, thanks to the programming interface the bulbs are providing. So, as a dedicated KDE user for years, I started developing a Plasma 5 widget that provided a simple user interface to control the bulbs next to the clock in the system tray. Unfortunately, the code was quite messy (e.g., I was a beginner with QML widgets, the widget was using a Python script for socket communication with the bulb, etc.), so I’ve never published that version on the web 🙂

Yorum Bırak

Introducing kio-ftps for KDE Frameworks 6

I’m one of the few people around the world who has to access some file servers with FTPS (not to be confused with FTP or SFTP) for work 🙂 Unfortunately, KDE Plasma does not directly support the ftps protocol, but a third-party kf5-kio-ftps library served me well for the good part of the last decade. Recently, KDE Plasma 6.0 & Frameworks 6.0 & Gear 24.02 have been released (kudos to the developers!), which resulted in the kio-ftps library becoming outdated and incompatible. So, long story short, I rolled up my sleeves and ported the library to KDE Plasma 6.0 🙂

Yorum Bırak

GNU/Linux Sistemlerde Xbox Kablosuz Oyun Kolu Kullanımı

Bilgisayarda oyun oynarken gamepad kullanmayı seven birisiyim; günümüz oyunlarının çoğunun kontrollerinin konsol cihazların gamepad’lerine göre tasarlandığını ve bazı oyunları karmaşık tuş düzenleri nedeniyle klavye/fare ikilisiyle oynamanın işkenceye dönüştüğünü düşünürsek türüne göre bir çok oyunun PC’de gamepad ile daha rahat oynandığını düşünüyorum 🙂 Bugüne kadar yıllardır Logitech’in Cordless Rumblepad 2 ve F710 ürünlerini kullanmış birisi olarak aklım epeydir Xbox gamepad’lerine gidiyordu ancak geçmişte Linux sistemlerde sıklıkla karşılaşılan donanım uyumsuzlukları nedeniyle çekinik kalıyordum. Sonunda merağıma yenik düşerek Xbox Series X|S gamepad ürününü aldım ve basit 1 – 2 işlem ardından bu cihazın Linux sistemlerde de sorunsuzca kullanılabildiğini mutlulukla paylaşmak istedim 🙂 Eğer siz de kendinizi aklınızdaki benzer soru işaretleri nedeniyle bu sayfada bulduysanız yazıyı okumaya devam edebilirsiniz.

Yorum Bırak

Git ve GitHub’a Giriş Semineri Ardından…

31 Ekim 2023 tarihinde Çankaya Üniversitesi’nde ve 8 Kasım 2023 tarihinde Başkent Üniversitesi’nde “Git ve GitHub’a Giriş” başlıklı seminerler düzenledim. Her iki üniversitede de yoğun ilgi gören bu seminerlerde bir saatlik süre içinde kısaca sürüm kontrol sistemlerinin tanımı ve kullanım alanlarından, Git’in tarihçesinden, add, commit, log, diff, branch, merge, pull, push gibi yaygın kullanılan özelliklerinden bahsettim.

Yorum Bırak

IPv4 Ağ ve Yayın Adresi Hesaplama

Bundan birkaç yıl önce üniversitede bilgisayar ağları dersi uygulama saatlerinde öğrencilere IPv4 adresleri konusuyla ilgili soru çözmeleri için basit bir program hazırlamıştım. Program her çalıştırıldığında rastgele bir IPv4 adresi ve 255.255.0.0 ile 255.255.255.240 arası bir alt ağ maskesi üretiyor ve bu iki bilgiden yola çıkarak sırayla bu IP adresinin üyesi olduğu ağın ağ adresi ile yayın adresini hesaplayarak girilmesini istiyor.

Yorum Bırak

Zsh Otomatik Tamamlama Sistemi

Bilgisayarlarımıza herhangi bir GNU/Linux dağıtımını kurduğumuzda %99 olasılıkla Bash kabuğu kurulu gelecektir, bunu kullandığınız dağıtımda kullandığınız masaüstü ortamına göre gnome-terminal, konsole gibi uygulamaları çalıştırarak doğrulayabilirsiniz:

Zsh, bilgisayarlarımızda kullanabileceğimiz bir başka kabuk yazılımıdır. Kullandığınız dağıtıma göre apt / dnf / pacman / vs ile zsh paketini bilgisayarınıza kurabilir ve /etc/passwd dosyasında kendi kullanıcı satırınızda yer alan /bin/bash kısmını /bin/zsh olarak değiştirerek kullanmaya başlayabilirsiniz:

Zsh hakkında kaleme aldığım eski ve kısa bir yazıya https://blog.efeciftci.com/2013/05/oh-my-zsh/ adresinden erişebilirsiniz. Ben bu yazıda Zsh kabuğunun (Bash gibi diğer kabuklarda da bulunan) otomatik komut tamamlama özelliğinin nasıl çalıştığından ve kendi hazırladığımız programlar için otomatik tamamlama tanımlarının nasıl yapılabileceğinden bahsedeceğim.

Yorum Bırak

wait.h

Birden fazla process ile çalışan kod yazarken bazen wait() / waitpid() sistem çağrılarını kullanmak gerekebilir, bu sistem çağrıları child process yaratan parent process’lerin child’ların bitmelerini beklemek için kullanılır. Örneğin bir child process bir dosyaya yazma yapıyorsa ve parent process daha sonra bu dosyadan okuma yapacaksa önce child’ın tamamen sonlanmasını beklemesi gerekir çünkü child henüz daha dosyaya yazmayı bitirmemişken parent’ın bu dosyadan okuması hatalı sonuçlara yol açabilir.

Yorum Bırak