Kategori: Yazılım

  • 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;)
  • 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
  • HTML dosyalar için img etiketine açıklama ekleyici

    html Eğer bir framework kullanmıyorsanız HTML ile uğraşmak çok zaman kaybettirici bir iş haline gelebiliyor. Her sayfaya aynı etiketleri yerleştirmek, her sayfanın menülerinin aynı olduğundan emin olmak. Anahtar kelimelerin <img> etiketlerine yerleştirmek vb.

    Benim için en acı verici kısım son yazdığım kısım. SEO adına her <img> etiketine bir “alt” değeri eklemek gerekiyor ve bu değerlerinin her birinin farklı bir anahtar kelime olması önem taşıyor. Zaman içinde bir çok kere bu sorun ile karşılaştım. Yakın zamanda da karşılaştığım bu sorunu hem şimdi hem de ileride daha kolay çözebilmek için sonunda oturdum ve basit bir “python script”i yazdım.

    Amaç HTML içerikte bulunan <img> etiketlerindeki boş “alt” açıklamalarını, verilecek bir anahtar kelime dosyası python_sh-600x600içeriğindeki kelimeler ile rastgele doldurmak. Bu amaç doğrultusunda “aalaras” (Automatic Alt Argument Assigner) projesi oluştu. Bu gün içinde yazıp bitirdiğim proje umarım HTML dokumakla meşgul olan bir çok insanın yardımına koşar.

    Projeye ulaşmak için soldaki menüden ya da buraya tıklayarak Github depoma ulaşabilirsiniz. Scriptin kullanımı hakkındaki bilgi proje deposundaki “README.md” dosyasında bulunmaktadır.

  • Random Bird Name Generator geliyor 🙂

    bird_name_256Yakında anonim kullanıcı hesabı açmak için isim düşünmeye üşenen ve kuşları seven insanlar için, rastgele kuş adı üretecini yayına sokacağım. Heyecan dorukta.

    Ayrıca üye alımı yapan siteler için bir de API’si olacak. Üyelik işlemi sırasında rastgele isim atamak için güzel bir işlevsellik sunacak. Ancak API için biraz daha zaman gerekli 🙂

    Çalışmalar hızla devam ediyor. En kısa zamanda buluşmak üzere.

  • Stuxnet ve Flame’in atası keşfedilmiş

    stuxnet_flameChip dergisinin haberine göre Kaspersky labs. tarafından Stuxnet ve Flame’in atası keşfedilmiş. Chip dergisinde yazan makaleye göre ise bilgisayarların ne kadar güvensiz bir teknoloji yığını olduğunu  gözler önüne seriyor. Söz konusu sisteme sızma yöntemleri ve sistemde gizlenme bir hayli üst düzey. Makalenin bir kopyasını aşağıda bulabilirsiniz.

    (daha&helliip;)