• WordPress MCP: AI-Powered WordPress Integration with Model Context Protocol

    What is WordPress MCP?

    Model Context Protocol (MCP) is an open standard that enables AI assistants to communicate with external systems. WordPress MCP allows your AI assistants to connect directly to your WordPress site to create, edit, and manage content seamlessly.

    Why Use WordPress MCP?

    • Rapid Content Creation: Generate blog posts and pages by simply describing them in natural language.
    • Batch Operations: Create or update multiple posts simultaneously with AI assistance.
    • Automation: Automate repetitive content management workflows.
    • Integration: Connect your AI tools with WordPress effortlessly.

    How It Works

    WordPress MCP communicates through the WordPress REST API. Your AI assistant can perform all standard CRUD operations via the MCP protocol:

    • Create, update, and delete posts
    • Manage categories and tags
    • Upload and manage media files
    • Create and edit pages
    • List and moderate comments

    Security

    WordPress MCP uses application passwords for authentication, ensuring your AI assistant only performs authorized operations within your WordPress site.

    Key Features

    • Full REST API integration with WordPress
    • Secure authentication via application passwords
    • Support for custom post types and taxonomies
    • Yoast SEO meta field management
    • Real-time content synchronization

    Keywords

    • WordPress MCP integration
    • AI content management WordPress
    • MCP protocol WordPress
    • AI WordPress assistant
    • WordPress REST API automation
    • AI content creation WordPress
  • A Hardware Journey: Building an Intelligent RGB Lamp with NodeMCU and Home Assistant

    In the world of DIY, everything might look perfect on paper, but once the soldering iron heats up and the code starts flashing, things often take an unexpected turn. In this post, I’ll walk you through my journey of transforming a simple RGB lamp into a professional-grade smart home device—featuring Home Assistant integration, sound-reactive modes, and automated sunset transitions.

    (daha&helliip;)
  • Installing Open Web UI on Windows

    Open Web UI Ollama

    In this step-by-step guide, we’ll show you how to install Open Web UI on an Ollama pre-installed Windows 11 computer using Docker…

    (daha&helliip;)
  • Bringing Personal AI to Windows

    Ollama the personal AI

    In the age of artificial intelligence, having your own personal AI is no longer a distant dream. With tools like Ollama, you can easily set up and run AI models right on your Windows 11 machine. This guide will walk you through the process of installing Ollama and getting started with your very own AI companion.

    (daha&helliip;)
  • Python’da Yield Kullanımı

    Giriş:

    Python’da yield, return’e benzer bir şekilde çalışır. Herhangi bir programlama dilinde olduğu gibi, çalıştırılan bir metodun sonucunu döndürmek için return ifadesini kullanırız. Return ifadesi yalnızca metodun ürettiği değeri döndürür, Yield ise, çoklu sonuç içinden bir değer döndürüp bulunduğu noktayı hatırlayarak, sonraki çağrıda bulunduğu noktadan sonraki değeri döndürür. Return yerine python’da yield kullanılan fonksiyonlara generator fonksiyon denir ve birden fazla yield ifadesi barındırabilir. Bu şekilde bir fonksiyonun birden fazla sonuç döndürmesi sağlanabilir.

    (daha&helliip;)
  • Linux’ta less çıktısını renklendirme

    Linux yöneticilerinin çoğunlukla tercih ettiği içerik görüntüleme uygulaması less genellikle text dosya içeriğini görüntüleme ve içerik içinde arama yapma için kullanılabilen hızlı ve hafif bir görüntüleyicidir.

    lessin en büyük eksikliği nano gibi dahili bir içerik renklendiricinin bulunmamasıdır. nano editöründe renklendirme işini bir iki ayar ile halledebilirsiniz. Fakar nano bir editör olduğu için her zaman dosya görüntülemek amacıyla kullanılamıyor. Özellikle çok büyük dosyalarda aşırı hantal kalıyor.

    Ancak aşağıdaki adımları takip ederek less‘te de içerik renklendirme yapabilirsiniz.

    Dikkat: Aşağıdaki adımlar Debian ve türevlerinde iş görmektedir.

    Python kütüphanesi olarak repoda bulunan ve metin renklendirme işleri için kullanılan python-pygments‘i kurarak işe başlıyoruz. Eğer repoda bu ugulama yoksa http://pygments.org/download/ adresinden edinebilirsiniz.

    python-pygments‘i kurmanın iki yolu var birisi repo’dan diğeri pip aracılığı ile. Ben sistem çapında yapılacak değişiklikler için stabiliteyi bozmamak adına repodakini kullanmayı tercih ediyorum.

    # apt install python-pygments

    Kullanıcının less uygulamasını çalıştırdığında dosya uzantılarını tanıyabilmesi için aşağıdaki betiği kullanıcı kök klasöründe oluşturun.

    # nano ~/.lessfilter

    #!/bin/sh
    case "$1" in
        *.awk|*.groff|*.java|*.js|*.m4|*.php|*.pl|*.pm|*.pod|*.sh|\
        *.ad[asb]|*.asm|*.inc|*.[ch]|*.[ch]pp|*.[ch]xx|*.cc|*.hh|\
        *.lsp|*.l|*.pas|*.p|*.[xy]ml|*.xps|*.xsl|*.axp|*.ppd|*.pov|\
        *.diff|*.patch|*.py|*.rb|*.sql|*.ebuild|*.eclass|*.ini)
            pygmentize -f 256 "$1";;
    
        .bashrc|.bash_aliases|.bash_environment)
            pygmentize -f 256 -l sh "$1";;
    
        *)
            if grep -q "#\!/bin/bash" "$1" 2> /dev/null; then
                pygmentize -f 256 -l sh "$1"
            else
                exit 1
            fi
    esac
    
    exit 0

    Bu dosyayı aşağıdaki komut ile çalıştırılabilir hale getiriyoruz:

    # chmod u+x ~/.lessfilter

    Daha sonra kullanıcı kök dizinindeki .bashrc dosyasının en altına aşağıdaki satırları ekliyoruz.

    # nano ~/.bashrc

    export LESS='-R'
    export LESSOPEN='|~/.lessfilter %s'
    alias less='less -r'

    Dosyayı kaydettikten sonra değişikliklerin etkili olması için shell oturumunu yeniden açmanız gerekli. Bu dakikadan sonra açacağınız her yeni shell’de less uygulaması alakalı uzantılara denk geldiği takdirde içeriği renklendirerek gösterecektir.

  • PostgreSQL 10’u 12’ye güncelleme

    postgresql

    Notebook’umda kullandığım PostgreSQL 10 sürümü veritabanıdağıtımını sonunda 12 sürümüne çekme kararı verdim. Daha önce kullandığım işletim sistemi emrivaki yapıp 12 sürümünü yükledikten sonra güncellemeyi de kendin yap diyince, acil işim olduğundan kurulan 12 sürümünü pruge edip 10 sürümünden devam etmiştim. Ama artık Corona sağolsun evde tıkılı kaldığım şu zamanda sallamadığım güncelleme işine girişebilirim.

    Öncelikle purge ile kaldırdığım paketi yeniden kurarak işe başladım:

    # apt install postgresql-12

    Daha sonra postgres.conf ve pg_hba.conf ayarlarını 10’dan 12’ye aktarıyoruz. Bunun için iki sürümün dosyalarındaki farklara aşağıdaki gibi bakabilirsiniz:

    # diff /etc/postgresql/10/main/postgresql.conf /etc/postgresql/12/main/postgresql.conf
    # diff /etc/postgresql/10/main/pg_hba.conf /etc/postgresql/12/main/pg_hba.conf

    Ayarları aktarma işleminden sonra çalışan postgresql servisini durdurun

    # sudo systemctl stop postgresql.service

    Servisi durdurduktan sonra yükseltme işlemini “postgres” kullanıcısı ile yapmaya başlayacağız. Bunun için “postgres” kullanıcısına geçin:

    # sudo su postgress

    Yükseltme işlemine geçmeden önce son olarak cluster’ları kontrol edelim:

    # /usr/lib/postgresql/12/bin/pg_upgrade \
    --old-datadir=/var/lib/postgresql/10/main \
    --new-datadir=/var/lib/postgresql/12/main \
    --old-bindir=/usr/lib/postgresql/10/bin \
    --new-bindir=/usr/lib/postgresql/12/bin \
    --old-options '-c config_file=/etc/postgresql/10/main/postgresql.conf' \
    --new-options '-c config_file=/etc/postgresql/12/main/postgresql.conf' \
    --check

    Yukarıdaki komutun sonundaki “–check” anahtarı size yapılacak işlemi herhangi bir değişiklik yapmadan çalıştırıp (dry run) herhangi bir sorun olup olmayacağını gösterecektir. Eğer bir sorun görünmezse aynı komutu “–check” anahtarını silip tekrar çalıştıracağız:

    # /usr/lib/postgresql/12/bin/pg_upgrade \
    --old-datadir=/var/lib/postgresql/10/main \
    --new-datadir=/var/lib/postgresql/12/main \
    --old-bindir=/usr/lib/postgresql/10/bin \
    --new-bindir=/usr/lib/postgresql/12/bin \
    --old-options '-c config_file=/etc/postgresql/10/main/postgresql.conf' \
    --new-options '-c config_file=/etc/postgresql/12/main/postgresql.conf'

    Bu işlemin süresi, veri tabnaının barındığı medyanın hızı, veritabanı sayısı ve boyutuna göre değişiklik gösterecektir. HDD üzerindeki ~90GB boyutundaki veritabanını aktardığımda süre tutmadım ama en az 2 saat sürdüğünü söyleyebilirim. Yükseltme işlemi bittikten sonra “postgres” kullnıcısını terk edip yeni PostgreSQL sunucu ayarlarındaki portu olması gerekn port haline getiriyoruz. Tabi eski sunucunun port ayarını da değiştirmemiz gerekiyor:

    # sudo nano /etc/postgresql/12/main/postgresql.conf

    "port = 5433" satırını "port = 5432" olarak değiştirin.

    # sudo nano /etc/postgresql/10/main/postgresql.conf

    "port = 5432" satırını "port = 5433" olarak değiştirin.

    Ve PostgreSQL servisini yenidne başlatın:

    # sudo systemctl start postgresql.service

    Şu andan itibaren sürüm 10, 5433 portundan, sürüm 12 ise standart 5432 portundan yayın yapmaya başladı. unutmayın halen 10 sürümüne geri dönebilir durumdasınız. Sadece port numaralarını değiştirerek eskiv eri tabnına erişebilirsiniz. Ya da mevcut port üzerinden bir client ile erişilebilir. Öntanımlı portta çalışan veritabanı sunucu sürümünü öğrenmek için aşağdaki komutu girebilirsiniz:

    # sudo su postgres
    # psql -c "SELECT version();"

    Yeni veritabanı için bir takım optimizasyonlar yapmak maksadıyla aşağıdaki komutu çalıştıracağız.

    # ./analyze_new_cluster.sh
    # exit

    Tebrikler. Güncellenmiş PostgreSQL ve yükseltilmiş veritabnınız kullanıma hazır.

    Bu adımdan sonra yapılacaklar eski veritabanının ve sunucusunun sistemden kaldırılması adımlarıdır. Eğer birşeylerden emin değilseniz bu adımlara geçiş yapmayın!

    # apt list --installed | grep postgresql
    # sudo apt-get remove postgresql-10 postgresql-server-dev-10
    # sudo rm -rf /etc/postgresql/10/
    # sudo su postgres
    # ./delete_old_cluster.sh
  • Linux Mint’te ikincil wireless ile HotSpot oluşturmak

    Linux mint hotspot

    Linux Mint Mate desktop’ta system tray’deki network manager’dan “Edit Connections”a tıkla.

    Gelen pencerede “+”ya tıklayıp “Hardware” başlığı altından “WiFi” seçin ve “Create”e tıkla.

    Yeni pencerede:

    • General Sekmesinde: “auto connect this network when available” seçili olmalı
    • Wifi Sekmesinde
      SSID alanına oluşturacağınız HotSpot’un adını gir
      Mode’u HotSpot yapın
      Device kısmından ikincil Wifi adaptörünü seç
    • Wifi Security sekmesinde:
      Security kısmından güvenlik seviyesini belirle (Tercihen WPA & WPA2 Personal)
      Password kısmına wifi parolası gir.
    • IPV4 Sekmesinde “Method” kısmı “Shared to other computers” olmalı

    Pencerenin en üstündeki “Connection Name”i de istersen değiştirip daha belirgin bir bağlantı adı verebilirsin.

    “Save” tuşuna tıkladığında otomatik olarak HotSpot alanı oluşacaktır.
    Başka bir cihaz ile bu bağlantıyı kullanabilirsin.

  • LVM’e yeni disk eklemek

    LVM Logical Volume Manager

    LVM (Logical Volume Manager) sisteminin en büyük artısı normal disk bölümlemeye göre dinamik bölümleme yapılabilmesidir. Aynı zamanda bir disk bölümünü birden fazla diske yayabilmek gibi güzel bir özelliğe de sahiptir. Kısaca “/” (root) bölümünü sadece bir disk kapasitesi ile sınırlamanıza gerek kalmaz. Bilgisayar bağlayacağınız fiziksel disklerin tüm kapasitesinin tamamını “/” bölümü altında toplayabilirsiniz. Elimde boşta duran 160GB genişliğindeki diski kullanıma sokmak amacıyla, mevcut LVM yöntemi ile bölümlenmiş sistemime eklemeye karar verdim. Eğer sizinde sisteminiz LVM üzerine kuruluysa ve disk alanınızı genişletmek istiyorsanız aşağıdaki örneklerde bu işlemi nasıl yapıldığını görebilirsiniz.

    (daha&helliip;)

  • Nasıl: Ubuntu sunucuda network ayarları

    Bu yazımda Ubuntu 16.04 LTS Sunucu sürümünde network ayarlarının nasıl yapılacağını aşağıdaki komut örnekleri ile göstereceğim, bu örnekte sunucuda wireless kart olduğunu varsayıyorum, zaten Ethernet bağlantısı pek sorun olmadığından sunucular için en çok wireless kartı üzerinden bağlantı nasıl yapılır sorusunun cevabı aranmakta.

    # sudo -s

    komutu ile root olduktan sonra aşağıdaki komut ile sistemimizdeki wireless kartlarını bulacağız.

    # iwconfig

    lo        no wireless extensions.

    wlan0     IEEE 802.11bg  ESSID:off/any
    Mode:Managed  Access Point: Not-Associated   Tx-Power=off
    Retry short limit:7   RTS thr:off   Fragment thr:off
    Power Management:off

    eth0      no wireless extensions.

    Görüldüğü üzere sistemimizde “wlan0” olarak tanımlanmış bir wireless kartı mevcut.

    Bu kart için “/etc/network” altında tanımlamalarımızı yapacağız, ama önce “wpa” anahtarını oluşturmamız gerek. Bunun için önce “/etc/network/interfaces.d/” klasörüne geçin.

    # cd /etc/network/interfaces.d

    Ardından şu komutu çalıştırın, SSID yerine bağlanmak istediğiniz kablosuz ağın adını yazın:

    # wpa_passphrase SSID >> wlan0.cfg

    Komutu çalıştırdığınızda alt satıra geçip beklemeye başlayacak. Bu durumda wireless parolanızı girip “enter”a basmanız gerekmekte. Bu işlemden sonra wifi key’ini wlan0.cfg dosyası içinde görebilirsiniz.

    # cat wlan0.cfg

    network={
    ssid=”SSID”
    #psk=”wifiparolasi”
    psk=8ada1f8dbea59704af379538b4d9191f6a713905d1b4cd7a72864cea685b1a7f
    }

    Bu işlemden sonra “wlan0.cfg” dosyasını düzenlemek için “nano” ile açıp  bu interface için ağ bağlantı ayarlarını yapmaya başlıyoruz:

    # nano wlan0.cfg

    Yukarıda gördüğümüz içeriğin üstü çizili olan satırlarını silmekle işe başlayacağız:

    network={
    ssid=”SSID”
    #psk=”wifiparolasi”
    psk=8ada1f8dbea59704af379538b4d9191f6a713905d1b4cd7a72864cea685b1a7f
    }

    Yukarıda gördüğümüz içeriğin üstü çizili olan satırlarını silin. Kalan satırın başını değiştirin ve şu hale getirin.

    wpa-psk 8ada1f8dbea59704af379538b4d9191f6a713905d1b4cd7a72864cea685b1a7f

    Daha sonra bu satırın üstüne aşağıdaki satırları ekleyin:

    auto wlan0
    iface wlan0 inet static
    address 192.168.1.2 #kullanılmayan bir IP adresi olmalı.
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.4.4 8.8.8.8
    wpa-ssid SSID
    wpa-psk 8ada1f8dbea59704af379538b4d9191f6a713905d1b4cd7a72864cea685b1a7f

    Dosyayı bu şekilde kaydettikten sonra aşağıdaki komut el ile çalıştırarak ağ bağlantısını sağlayabilirsiniz.

    # ifup wlan0

    Bu yöntem ile sunucuyu yeniden başlatsanız dahi boot esnasında otomatik olarak ağ bağlantısı sağlanmış olacaktır. Ayrıca eğer kablolu bağlantı kullanacaksanız “wpa” ile başlayan satırları silip “wlan0” olan interface adını ethernet interface adı ile (Örneğin eth0) değiştirmeniz yeterli olacaktır.