August 11, 2020

Linux: Manjaro ile Arch Linux Ne Kadar Farklı veya Ne Kadar Benzer ? Hangisi Daha İyi ?

Manjaro veya Arch Linux… Manjaro Arch Linux tabanlı madem, Arch’dan farkı ne? Bu karşılaştırma yazısında Arch ve Manjaro’nun farklılaştığı yölere bakacağız.

Kullanıcı dostu Linux dağıtımlarının çoğu Ubuntu’yu temel alır. Linux kullanıcıları daha fazla deneyim kazandıkça, çoğunlukla Arch Linux etki alanında daha gelişmiş dağıtımlara geçiş yaparlar.

Bu Arch Linux etki alanında iki dağıtım hakimdir: Arch Linux’un kendisi ve Manjaro. Başka Arch tabanlı Linux dağıtımları da var elbette, ancak hiçbiri bu ikisi kadar popüler değil.

Manjaro ve Arch Linux: Ne kadar farklı veya ne kadar benzer?

Bu iki dağıtımın sadece çeşitli noktalarda farklılıklara odaklanmadığını, aynı zamanda temel benzerlikler taşıdıklarını da unutmayalım! Her ikisi de yuvarlanan dağıtım döngüsünü takip eden dağıtımlardır ancak aynı türden değildirler.(Bakınız İrdelemeler: “Körü Körüne Yuvarlanmayan” Yuvarlanan Dağıtım Manjaro Kullanmak İçin On Neden)

Arch ve Manjaro’da, Ubuntu veya Fedora veya diğer bazı dağıtımlada olduğu gibi sistematik bir “sürüm döngüsü” yoktur. Arch veya Manjaro sisteminizi güncel tumakla, her zaman işletim sisteminin ve yazılım paketlerinin en son sürümüne sahip olmuş olursunuz.

Yeni, sıfırdanbir kurulum yapmayı planlıyorsanız, hem Manjaro’nun hem de Arch’ın kurulum ISO’larını düzenli olarak güncellediğini bilmelisiniz. Her yayınlanan ISO dosyası sayesinde paketlerin yayınlanmış en son sürümleri elde edilmiş olur ve kurulumdan sonra hemen güncelleme ihtiyacı oluşmaz.

Ancak, Arch ve Manjaro’nun yuvarlanan sürüm modeli arasında bir fark var.

Manjaro’nun, topluluk tarafından sürdürülen Arch User Repository (AUR) dışında kendi bağımsız depoları da bulunur. Bu depolar, Arch tarafından sağlanmayan yazılım paketlerini içerir. Resmi Arch depoları tarafından sağlanan yazılım paketleri ise, genellikle Arch’dan yaklaşık iki hafta sonra, kapsamlı bir şekilde test edilerek (ve gerekirse yamalanarak) Manjaro’nun kendi kararlı depolarına girer ve kullanıma sunulur.

Bu test sürecinin doğal bir sonucu olarak, Manjaro Arch Linux’tan daha kararlı ve sorunsuz bir şekilde yoluna devam eder.

Paket Yönetimi: Pacman ve Pamac

Hem Arch hem de Manjaro, C dilinde kodlanmış, uygulamaları paketlemek için .tar kullanan Pacman adlı, komut satırı tabanlı paket yönetim aracıyla birlikte gelir. Diğer bir deyişle, her iki dağıtımdaki paketleri yönetmek için aynı pacman komutlarını kullanabilirsiniz.

Pacman’e ek olarak, Manjaro, Manjaro’ya kolayca yazılım yüklemek için Pamac adlı bir GUI uygulaması da geliştirdi. Bunun Manjaro’yu Arch’dan daha kolay bir hale getirdiği muhakkaktır.

Pamac’ı Arch Linux’ta da AUR depolarından yükleyerek kullanabileceğinizi, ancak aracın Manjaro’nun ayrılmaz bir parçası olduğunu unutmayın.

Manjaro Donanım Algılama Aracı (MHWD)

Pamac, Manjaro ekibi tarafından kullanıcılarına yardımcı olmak için geliştirilen tek GUI aracı değildir. Manjaro ayrıca donanım algılama ve onlar için sürücü önermek için özel bir araca da sahiptir.

Bu donanım algılama aracı, Manjaro’nun topluluk tarafından sevilmesinin ana nedenlerinden biri olabilecek kadar kolay ve kullanışlıdır.  

Sürücü Desteği

Hepimizin bildiği gibi, Linux’un kanayan yararlarıdan biri ekran kartı sürücüleridir.Manjaro, ekran kartı(GPU) sürücüleri için mükemmel bir destek sunar.

Manjaro kurulumda, açık kaynaklı (ücretsiz) veya açık kaynaklı olmayan (ücretsiz olmayan) grafik sürücüsü kurulumuyla ilgili seçenekler sunar. “Ücretsiz olmayan” seçeneğini seçtiğinizde, grafik kartınızı otomatik olarak algılar ve ona en uygun sürücüyü yükler.Böylece GPU kurulumdan sonra çalışır hale gelir.

Önceki bölümde gördüğünüz donanım algılama aracı(MHWD) sayesinde, Manjaro’yu kurduktan sonra da grafik sürücüsünü kurmak gayet kolaydır.

Ve Nvidia Optimus ekran kartlı (Hibrit GPU) bir sisteminiz varsa, Manjaro ile uyumlu bir şekilde çalıştırabilirsiniz, zira bunun için bir çok seçeeğe sahipsiniz.

Arch Kullanıcı Depolarına (AUR) Erişim

Arch User Repository (AUR), Arch tabanlı Linux dağıtımları kullanıcıları için topluluk odaklı;  topluluk üyelerinin yeni paketleri düzenlemek ve paylaşmak ve popüler paketlerin topluluk havuzuna dahil edilmesini hızlandırmaya yardımcı olmak amacıyla oluşturulmuş bir depodur.

Resmi depolara giren çok sayıda yeni paket AUR’dan yolculuğa çıkar. AUR’da, kullanıcılar kendi paket yapılarına (PKGBUILD ve ilgili dosyalar) katkıda bulunabilirler.

AUR’u hem Arch Linux hem de Manjaro’da kullanabilirsiniz.

Masaüstü Ortamları

Herhangi bir Linux dağıtımında, neredeyse tüm masaüstü ortamlarını kullanabilirsiniz. Arch ve Manjaro da bunlardan farklı değildir.
 
Varsayılan Arch ISO dosyası herhangi bir masaüstü ortamı içermez. Örneğin, Arch Linux’a KDE kurmak istiyorsanız, ya Arch Linux’u kurarken ya da daha sonra indirip kurmanız gerekecektir.
 
Manjaro ise Xfce, KDE ve GNOME gibi masaüstü ortamları için farklı ISO dosyaları sağlar. Manjaro topluluğu ayrıca MATE, Cinnamon, LXDE, LXQt, OpenBox ve daha fazlası için ISO dosyaları geliştirir ve sunarlar.
 
Yükleme Prosedürü
 
Manjaro, Arch Linux’a dayalıdır ve Arch uyumludur, ancak bir Arch Linux değildir. Grafiksel bir yükleyiciye sahip önceden yapılandırılmış bir Arch sürümü bile değildir.
Arch Linux, kurulumundan itibaren alışılagelmiş bir konfor ve kolaylık sunmuyor, bu yüzden çoğu insan daha kolay bir şeyleri tercih ediyor. İşte Manjaro size bu kolaylığı sağlıyor ve deneyimli veya uzman bir kullanıcı olma yolunda sizi destekliyor.
 
 

Belgelendirme ve Destek

Arch ve Manjaro’nun kendi kullanıcılarına yardımcı olmak için kendi wiki sayfaları ve destek forumları vardır.

Manjaro’nun dokümantasyon için iyi bir wiki‘si olsa da, Arch wiki bu konuda tamamen farklı bir klasmanda yer alır. Arch Linux’un her yönüyle ilgili ayrıntılı bilgiyi Arch wiki‘de bulabilirsiniz.

 

Hedef Kitle

Temel fark, Arch’ın, belgei okumaya ve kendi sorunlarını çözmeye istekli olan, “kendin yap” tarzını benimsemiş kullanıcıları hedeflemesidir.

Öte yandan Manjaro, çok ta tecrübeli olmayan veya işletim sistemini kurmak için zaman harcamak istemeyen Linux kullanıcılarını hedefler.

Sonuç

Bazı insanlar genellikle Manjaro’nun, Arch’ı kuramayanlar için olduğunu söylese de, bu çok ta doğru olarak kabul edilemeyebilir. Neticede herkesin Arch’ı sıfırdan bir kurulum ve yapılandırma için fazla zamanı olayabilir.

Manjaro kesinlikle bir canavar, ama Arch’dan çok farklı bir canavar. Hızlı, güçlü ve her zaman güncel olan Manjaro, bir Arch işletim sisteminin tüm avantajlarını sunmasının yanında, özellikle hem yeni başlayan hem de deneyimli kullanıcılar için kararlılık, kullanıcı dostu olma ve erişilebilirliğe vurgu yapar.

Manjaro, minimalist olma konusunda Arch Linux kadar ileri gitmiyor. Arch ile her şeye sıfırdan başlar ve tüm ayarlarıı manuel olarak ayarlarsınız.(Arch Linux tutkumun nedeni tam olarak budur!) Varsayılan Arch yüklemesi tamamlandığında, komut satırında çalışan bir Arch Linux’unuz olur. Grafiksel bir masaüstü ortamı mı istiyorsunuz? Devam edin, çünkü aralarından seçim yapabileceğiniz çok şeseçeneğiniz mevcut. Birini seçin, kurun ve yapılandırın. Özellikle Linux’ta yeniyseniz, bunu yapmakla çok şey öğrenirsiniz. Bu sayede, sistemin nasıl bir araya geldiği ve her şeyin neden bu şekilde kurulduğu/çalıştığı konusunda mükemmel bir deneyime sahip olursunuz.

August 09, 2020

GNU/Linux’ta komut satırında bir videoyu GIF’e dönüştürme

Animasyonlu GIF’ler internette blog gönderilerinden sosyal medyaya, mizahi ve açıklayıcı bir şekilde kullanılabilirler. Hareketli resimler, hareketsiz resimlerden daha iyidir ve video yüklemekten daha kısa sürelidir. Bir videoyu GIF’e dönüştürmek için bir GUI uygulama kullanabilirsiniz. Hatta kimi siteler isteyenler için bu tür dönüştürmeleri ücretsiz de yapabiliyorlar. Ama ben size bu işi komut satırında nasıl yapabileceğinizi anlatacağım. GNU/Linux’ta komut satırında bir videoyu GIF’e dönüştürmek için ffmpeg kullanmanız gerekir. Bu nedenle, eğer sisteminizde yüklü değilse, bu işe girişmeden önce, sisteminize ffmpeg yüklemeniz gerekir. Bilindiği gibi, bunu yapmak için şu komutu vermeniz gerekir: sudo apt install ffmpeg. Şimdi mesela masaüstünde bir video dosyamız olduğunu kabul edelim. Bu nedenle terminali açıp, öncelikle masaüstüne gidelim:

/home/kullanıcı_adı/Masaüstü

Şimdi komut satırında aşağıdakine benzer bir komut vererek, bir videoyu GIF’e dönüştürme işlemini başlatabilirsiniz. Örneğin ben, danimarka.mp4 adlı bir videoyu, danimarka.gif adlı bir GIF’e dönüştürmek için aşağıdaki komutu verdim:

ffmpeg -i danimarka.mp4 danimarka.gif

4.0 MB’lık video, yalnızca 10-15 saniyede GIF’e dönüşüverdi. Kullandığım videoyu burada görebilirsiniz. Elde ettiğim GIF ise burada ve aşağıda.

 

August 08, 2020

LibreOffice kurmadan nasıl kullanılır?

LibreOffice yazılımını kurmadan kullanmak için yeni tür özgür yazılım portable sistemi olan AppImage çalışmasından yararlanacağız.Bunun için buradaki bağlantıdan en alttaki full version Download Fresh sürümünü indiriyoruz.LibreOffice Full Version Download FreshBuradaki bağlantıdan da AppImage dosyalara kısayol oluşturan ve çalışmasını kolaylaştıran sisteminize uygun (64bit-32bit/DEB/RPM veya

August 06, 2020

Linux Haber: Ubuntu 20.04.01 LTS Duyuruldu

Varyantlarıyla birlikte, Ubuntu’nun 20.04’ün ilk nokta sürümü olan 20.04.01 sürümü duyuruldu.

Bu yeni yapılar, çoğunlukla paketler için hata düzeltmeleri içeriyor ve yeni kurulumlarda güncelleme için gereken süreyi azaltıyor.

Her nokta sürümde olduğu gibi, bu nokta sürüm de, birçok güncellemeyi içeriyor ve güncellenmiş kurulum medyası, kurulumdan sonra daha az güncellemenin indirilmesini gerektirecek şekilde sağlanıyor.

Bu sürümde Ubuntu 20.04 LTS!nin kararlılığı ve uyumluluğu korunmaya odaklanılmış. Ayrıca sürüm, diğer hatalar için güvenlik yüksek etkili güncellemeleri ve düzeltmeleri içeriyor.

20.04 LTS’nin bu ilk nokta sürümü hakkında daha fazla ayrıntı için sürüm duyurusuna ve sürüm notlarına bakabilirsiniz.

Ubunt 204.04.01 LTS sürümünü indirmek için dağıtımın indirme sayfasından yararlanabilirsiniz.

LibreOffice kurmadan nasıl kullanılır?

Bilindiği gibi, Debian Türkiye Forum’un değerli bir üyesi, değerli arkadaşımız Vedat Kılıç; uzun zamandır kendine özgü ISO kalıpları hazırlıyor. Vedat, bunları kendisine ait olan gnulinuxfree.blogspot.com üzerinden yayımlıyor. Bilindiği gibi, daha geniş bir çevreye duyurulması amacıyla bu çalışmaları forum üzerinden ve buradan da sizlere duyurmaya çaba gösteriyoruz. Vedat Kılıç‘ın en son yazdığı “LibreOffice kurmadan nasıl kullanılır?” başlıklı yazıyı da sizlerin görmesini istedik. Şöyle diyor Kılıç: “LibreOffice yazılımını kurmadan kullanmak için yeni tür özgür yazılım portable sistemi olan AppImage çalışmasından yararlanacağız. Bunun için buradaki bağlantıdan en alttaki full version Download Fresh sürümünü indiriyoruz: LibreOffice Full Version Download Fresh. Buradaki bağlantıdan da AppImage dosyalara kısayol oluşturan ve çalışmasını kolaylaştıran sisteminize uygun (64bit-32bit/DEB/RPM veya AppImage) AppImage Launcher paketini indiriyoruz: AppImage Launcher. İndirdiğiniz LibreOffice paketine çalıştırma izni vermemiz gerekiyor.

“Bu nedenle, LibreOffice paketine alttaki komut ile çalışma izni veriyoruz.

chmod -R 755 /libreoffice/yolu/tam/adı

LibreOffice şu anda üzerine çift tıkladığınızda çalışır durumdadır. Ancak hem kısayol olsun hem menüden çalıştırayım derseniz, indirdiğiniz AppImageLauncher paketini kurmanız gerekir. Şayet AppImageLauncher paketinin kendisi de AppImage paketi ise ona da alttaki komut ile çalışma izni verin ve çift tık ile çalıştırın.

chmod -R 755 /appimagelauncher/tam/adı

Appİmage çalıştıysa LibreOffice paketine çift tıkladığınızda sistem menüsünde kısayol oluşturacak ve paketin kendisini ev dizininde oluşturduğu Applications adlı dizine taşıyacaktır.
Güncelleyeceğiniz zaman aynı bağlantıdan aynı sürümün son versiyonunu indiriyorsunuz, aynı komut ile çalışma izni veriyorsunuz, başka bir şeye gerek kalmıyor.

Böylece sisteme kurmadan hem LibreOffice yazılımını kullanabilirsiniz hem de daha başka AppImage yazılımlar için alt yapı oluşturmuş olduk.
Ayrıca bu paketi herhangi bir USB’ye kopyala-yapıştır yaparak USB ile her makinede kullanabilirsiniz.”

gnulinuxfree.blogspot.com

Özgür Yazılım Vakfı’nın Yeni Başkanı Belli Oldu

Özgür Yazılım Vakfı (Free Software Foundation; kısaca FSF) yeni başkanı belli oldu. Vakfın seçtiği yeni başkan Geoffrey Knauth. Not: Richard Stallman, 1985'teki kuruluşundan bu yana Özgür Yazılım Vakfı'nın kurucu başkanı olarak görev yapmış, ancak tartışmalı yorumları nedeniyle geçen Eylül ayında istifa etmişti. Richard Stallman’dan sonra gelen yeni başkan Geoffrey Knauth,

Linux Kernel 5.8 Sürümü Yayınlandı

Linux Kernel 5.8 sürümünde birçok yenilik ve geliştirilen özellikler bulunuyor. Yapılan değişikliklerden bazıları: Zen/Zen2 CPU’lar için AMD Enerji Sürücüsü, yeni F2FS sıkıştırma yetenekleri, güç yönetimi geliştirmeleri, POWER10 işlemcileri mainline kernel koduyla önyüklemeye başlatılma ve çok daha fazlası... Linux Kernel 5.8 Sürümündeki Yenilikler: Qualcomm Adreno 405/640/

August 05, 2020

LibreOffice 7.0 Kararlı Sürümü Çıktı

The Document Foundation tarafından yayınlanan LibreOffice 7.0’da daha iyi ve hızlı performans için AMD’nin sponsorluğunda Skia grafik motoru ve Vulkan GPU tabanlı hızlandırma, ODF 1.3 döküman desteği, DOCX/XLSX/PPTX gibi Microsoft Ofis formatları için daha iyi uyumluluk, HiDPI geliştirmeleri, Adobe Flash dışarıya aktarma desteğinin kaldırılması, diğer içeriye/dışarıya aktarma

August 03, 2020

Linux Haber: Debian Buster Tabanlı BunsenLabs Linux ‘Lithium’ İki Yılın Ardından Nihayet Kararlı Sürüme Ulaştı

İki yıldan uzun süren bi geliştirme sürecinin ardından, CrunchBang Linux’un devamı olan ve OpenBox kullanan Debian GNU/Linux tabanlı dağıtım BunsenLabs Linux ‘Lithium’, bugün itibarıyla kararlı sürüme ulaştı.

BunsenLabs Ekibi, en son Debian GNU/Linux 10 ‘Buster’ temelli sürüm olan BunsenLabs Lithium’un resmi sürümünü duyurdular.

Beklendiği gibi, BunsenLabs Linux ‘Lithium’ varsayılan olarakyeni Papirus simgelerine ve yepyeni bir karanlık temaya sahip yeni bir görünüm ve his yaratıyor.Secure Boot kullanan yeni bilgisayarlara yükleme yeteneği ve kullanıcının dağıtımı ihtiyaçlarına göre tamamen özelleştirmesi için daha fazla modülerlik sunuyor.

Kullanıcılar artık varsayılan Openbox pencere yöneticisini başka bir masaüstü ortamıyla değiştirebilirler. Ayrıca, BunsenLabs oturumu artık varsayılan olarak jgmenu kullanıyor.

Varsayılan yazılım seçiminde de bazı değişiklikler var. Örneğin, Terminator, LXTerminal ile değiştirilmiş, Ristretto yerine Mirage resim görüntüleyici kullanılıyor, LibreOffice Calc, popüler Gnumeric elektronik tablo düzenleyicisinin yerine gelmiş.inxi ve lshw araçları eklenmiş. Tam paket listesini dağıtımın sitesinden inceleyebilirsiniz.

Diğer kayda değer değişiklikler arasında geliştirilmiş BLOB tema yöneticisi, Bluetooth desteği ve ilk önyükleme Karşılama komut dosyasındaki diğer geliştirmelerin yanı sıra Conky sistem monitörü ve tint2 panelindeki geliştirmeler yer alıyor.

Hafif dağıtımları seviyorsanız ve Debian’ı Openbox ile kullanmak istiyorsanız, BunsenLabs Linux Lithium’u seveceksiniz.

BunsenLabs Linux ‘Lithium’ sürümü, şu anda dağıtımın web sitesinden indirilebilir.

August 02, 2020

Linux: Snap, Flatpak, AppImage… Aralarındaki Farklar ve Hangisi Sizin Kullanımınız İçin Daha Uygun?

Uygulamaları Snap, Flatpak ve AppImage olmak üzere üç farklı yoldan Linux dağıtımınıza yükleyebilirsiniz. Hangisinin kullanımınız için daha uygun olduğuna bakalım.

Son yıllarda, Linux sistemlerinde üç tane farklı, dağıtımdan bağımsız paket formatı yaygın kullanım alanı bulmaya başladı. Bu yeni paket biçimleri Snap, Flatpak ve AppImage’dır.

Paket yöneticileri, geliştiricilerin Linux sistemlerindeki uygulamaları paketlemesini, dağıtmasını, yüklemesini ve bakımını yapmasını sağlar. Dağıtımdan bağımsız paket yöneticileri ise, platforma bağlı olan “.deb” ve “.rpm” gibi geleneksel paket yöneticilerinden farklıdır.

Dağıtımdan Bağımsız Paket Biçimleri ve Geleneksel Paket Biçimleri

Geleneksel paket biçimlerinden farklı olarak, dağıtımdan bağımsız paket biçimleri, uygulamaları tek bir paket olarak yüklemek ve çalıştırmak için gerekli tüm bağımlılıkları bir araya getirir. Bu nedenle, bu paket biçimleri tarafından dağıtılan herhangi bir yazılım, söz konusu paket biçiminin destekleyen herhangi bir Linux sisteminde çalışır.

Geleneksel paket yöneticileri, belirli bir platform için oluşturulmuş uygulamaları barındırır ve kullanıcıların(veya paket yöneticisinin kendisinin) paketin sistem üzerinde çalışması için gerekli bağımlılıkları da yüklemeleri gerekir. Bu, geleneksel paket yöneticileri için önemli bir dezavantaj olarak görünebilir, ancak dağıtım bağımlı paket yöneticileri için dikkat edilmesi gereken bir husus vardır…

Bir geliştirici, çalışmalarını dağıtmak için dağıtımdan bağımsız paket yöneticilerini kullandığında, bağımlılıkların en son güvenlik önlemleriyle birlikte güncel olmasını sağlamaktan tam olarak sorumludur. Aksi taktirde, paket, sistem için bir güvenlik tehdidi oluşturur. Bunun tersine, geleneksel yazılım paketleri, geliştiricileri tarafından korunur ve bu geliştiriciler bağımlılıkların en son güvenlik güncellemeleriyle güncellenmesini sağlar.

Snap, Flatpak, AppImage

Bu makalede, dağıtımdan bağımsız üç paket biçimini ele alarak – Snap, Flatpak ve AppImage- farklılıklarına değineceğiz.

1. Snap

Snap, Canonical tarafından geliştirilen ve ilk olarak 2014 yılında piyasaya sürülen, dağıtımdan bağımsız bir paket biçimidir.

Bu paket biçiminin geliştirilmesinin arkasındaki temel amaç, yazılım paketlerinin çok çeşitli cihazlarda çalışabilmesi için tek bir birleşik biçim oluşturmaktı.

Snap ayrıca, kullanıcıların yazılım paketlerini bulabileceği ve yükleyebileceği bir çevrimiçi uygulama mağazası olan Snapcraft’ı da sunmaktadır. Kullanıcıların mevcut tüm paketleri bulabileceği büyük bir havuz oluşturur. Snapcraft, Canonical ekibi tarafından kontrol edilip korunur.

Snapcraft, uygulamanın kullanıcıları dışında  uygulama geliştiricilerine Snap paketleri yayınlama konusunda yönergeler sağlar. Ek olarak, Snapcraft hem açık hem de kapalı kaynak yazılımlarla birlikte gelir.

2. Flatpak

Snap gibi Flatpak da Linux sistemlerinde genel uygulama dağıtımını ve kullanımını basitleştirmeyi amaçlayan, dağıtımdan bağımsız bir başka paket biçimidir. Daha önce xdg-app olarak bilinen çerçeve, kök ayrıcalıkları gerektirmeden veya sistem için bir güvenlik tehdidi oluşturmadan uygulamaları güvenli bir sanal sanal alanda çalıştırma kavramına dayanıyordu.

Flatpak 2015 yılında Red Hat, Endless Computers ve Collabora tarafından LGPL lisansıyla resmi olarak piyasaya sürüldü.

Snap uygulamasının Snapcraft mağazası gibi, Flatpak da kullanıcıların tüm Flatpak paketlerini bulabileceği ve kurabileceği Flathub uygulama mağazasına sahiptir.

Yazılım paketlerini yüklemek ve güncellemek için, Canonical tarafından kontrol edilen tek bir depo olan Snap’in aksine, Flatpak çoklu depo kullanımını destekler.

3. AppImage

AppImage, 2004 yılında ilk kez Kik adıyla yayınlanan bir başka yaygın dağıtımdan bağımsız paket biçimidir. Taşınabilir bir paket biçimi olarak kabul edilen “Bir uygulama = bir dosya” kavramını izler.Bu da tek bir uygulama ve uygulamanın çalışması için gereken her şeyi içeren düzenli bir bağımsız dosya demektir. Uygulamayı çalıştırmak için kullanıcının yalnızca çalıştırılabilir yapması ve çalıştırmak için üzerine çift tıklaması yeterlidir.

Kullanıcılar paketleri AppImage web sitesinde bulabilirler. Burada dikkat edilmesi gereken diğer bir özellik, Snap ve Flatpak gibi paket güncellemelerini yüklemek için havuz kullanmamasıdır. Bunun yerine, AppImage paketi güncelleştirmelerin nasıl yükleneceği hakkında ek bilgilerle birlikte gelir. Bu güncelleme bilgileri olmayan paketler AppImageUpdate gibi bir araçla güncellenebilir.

İzin Kontrolleri

Çoğu uygulamanın, sorunsuz çalışması için farklı sistem özelliklerine erişmesi gerekir. Bu paket biçimlerinden bazıları kullanıcılara bu izinlerin bazılarını denetlemek için basit bir yol sağlar.

Snap, kullanıcı tarafından denetlenen izinler için hem grafik hem de komut satırı arabirimi sağlar. Snap ile uygulama izinlerini yönetmek için Ubuntu Yazılımını kullanabilirsiniz.

Flatpak ta kullanıcılara bir izin kontrol arabirimi sağlar. Flatpak uygulama izinlerini grafik olarak yönetmek için GNOME Yazılımını kullanabilirsiniz.

AppImage şu an için kullanıcı izni kontrolleri sunmamaktadır. Ancak, geliştiriciler bu özelliğin gelecekte uygulanabileceği konusunda ışık yakmışlardır.

Uygulama Taşınabilirliği

Bir AppImage uygulaması, Windows sistemindeki çalıştırılabilir ‘.exe.’ dosyasına benzer. Çalışması için gereken her şeyi içerir. Uygulamayı çalıştırmak için kullanıcının yalnızca çalıştırılabilir yapması ve başlatmak için üzerine çift tıklaması gerekir.

Snap ve Flatpak uygulamalarında durum böyle değil. Ancak, uygulamanın kendisi ve bağımlılıkları paketlenerek taşınabilir hale getirilebilir. Tüm bu süreç AppImage kadar kolay değildir ve birden fazla Terminal komutunun çalıştırılmasını gerektirir.

Sonuç

Yukarıda ele aldığımız, dağıtımdan bağımsız üç paket biçiminin her birinin avantaj ve dezavantajları vardır elbette. Farklı paket biçimlerindeki yazılımların keyfini çıkarabildiğiniz sürece belirli bir paket biçimine bağlı kalmanız gerekmez.

July 24, 2020

Linux: Arch Linux Neden Bu Kadar Popüler? Onu Bu Kadar Özel Kılan Ne?

Arch Linux’un neden bu kadar popüler olduğunu merak ettiniz mi hiç? İnsanlar, diğer dağıtımlara göre daha kolay olmasa da, neden Arch Linux ve Arch tabanlı dağıtımları bu kadar çok seviyorlar?

(Benzer makaleler 1, 2, 3, 4)

Bu makalede, insanların Arch Linux kullanmayı sevmelerinin 6 nedenini sıralayacağız.

Elbette, Arch Linux veya başka bir dağıtımı sevmeniz veya kullanmanız gerektiği gibi bir kural yok, ancak Arch Linux’un kullanıcılar arasında bu kadar popüler olduğu savı tamamen bana aittir ve gözlemlerimin bir sonucudur.Öznel olduğu için, doğru olması zorunluluğunu doğurmaz.

Neden Arch Linux?

1. DIY(Do It Yourself) “Kendin yap” yaklaşımı ile işletim sisteminizüzerinde her yönüyle kontrol sağlarsınız.

Arch Linux bana göre bir DIY(Do It Yourself) “Kendin yap” işletim sistemidir. Yüklemeden yönetimine kadar Arch Linux her şeyi kendizin halletmenize imkan sağlar.

Hangi masaüstü ortamının kullanılacağınıza, hangi bileşenlerin ve hizmetlerin yükleneceğine siz karar verirsiniz. Bu da belli bir bilgi ve birikim gerektiriri ki, sonucunda da ne yaptığınızı biliyorsanız, size minimum bir işletim sistemi sunar.

Eğer bir şeyleri kendiniz yapmaya meraklıysanız, Arch Linux’u seveceksiniz!

2. Arch Linux ile Linux’un nasıl çalıştığını(mantığını) daha iyi anlarsınız.

Eğer daha önce Arch Linux yüklemeyi denediyseniz, birlikte gelen karmaşıklığı biliyor olmalısınız.Ancak bu karmaşıklık, diğer dağıtımlarda muhtemelen hiç uğraşmadığınız şeyleri öğrenmek zorunda kalacağınız anlamına da gelir.Örneğin, Arch Linux’u yüklerken ağı yapılandırmak, disk bölümlemek, sistemi yapılandrmak, kullanıcı oluşturmak… vs. vs. Hepsi iyi birer derstir.

Eğer bütün bunlar sizi bunalttıysa, Arch Wiki işte tam da bunun için var! internetteki en kapsamlı ve harika topluluk tarafından yönetilen en bilgilendirici ve öğretici belgeleri burada bulabilirsiniz.

3. Yuvarlanan sürüm modeliyle her zaman en yeni çekirdek ve yazılım kullanımı.

Arch Linux, yuvarlanan bir dağıtımdır(rolling rtelease). Bu, yeni çekirdek ve uygulamaların yeni sürümlerinin yayınlanır yayınlanmaz size sunulduğu anlamına gelir.Diğer Linux dağıtımlarının çoğu eski Linux çekirdek sürümlerini kullanırken, Arch Linux en son çekirdeği hızlı bir şekilde sizin kullanımınıza sunar.Aynı şey yazılımlar için de geçerlidir. Arch Linux depolarındaki bir yazılımın yeni bir  sürümü yayınlandığında, Arch Linux kullanıcıları bu yeni sürümleri çoğu zaman diğer dağıtımların kullanıcılardan daha önce alır.

Yuvarlanan sürüm modelinde her şey taze ve son teknolojidir. Bu durum sizi, işletim sistemini bir sürümden diğerine yükseltme zorunluluğundan da kurtarır. Sadece pacman -Syu komutunu  kullanmakla her zaman en son sürüme sahip olursunuz.

4. Arch Kullanıcı Deposu ya da yaygın olarak bilinen adıyla AUR!

Arch Linux deposunda bol miktarda yazılım vardır. AUR ise, Arch Linux’un yazılım havuzunu daha da genişletir. Arch Linux’3ta AUR ile çok daha fazla sayıda yazılım elde edersiniz.

AUR, daha yeni veya özel uygulamalar sağlayan topluluk kaynaklı bir depodur. AUR için, AUR Kullanımı İçin En İyi AUR Yardımcıları( AUR Helpers) yazımıza göz atabilirsiniz.

5. Başarmaktan doğan tatmin duygusu!

İnsan beyni bir meydan okumayı sever, ancak sadece en uygun zorluk bölgesi içindeyse.” -James Clear’ın Atomik Alışkanlıklar-

Herhangi bir Linux dağıtımını ilk kurduğunuzda yaşadığınız duyguları hatırlıyor musunuz? Bu size bir zafer hissi verdi mi? Bende öyle olmuştu… Linux’u başarıyla yüklemiştim!

Bir süredir herhangi  bir Linux dağıtımı kullanıyorsanız ve bu dağıtımın verdiği rahatlık hissi(ya da her şeyin çok kolay olduğu hissi) sizi sıkmaya başladıysa, Arch Linux’u yüklemeyi deneyin.

Orta derecede deneyimli bir Linux kullanıcısı için Arch Linux’u başarıyla yüklemek, işte ilk Linux dağıtımını yüklediğinizde yaşadığınız hisleri yeniden yaşamanızı sağlayacaktır!

Bir meydan okuma belki, ama ulaşılabilir bir meydan okuma. Bir meydan okumayı başarıyla tamamlama duygusu, insanların Arch Linux’u kullanmasının nedenlerinden biridir.

6. Arch Linux tamamen bir topluluk tarafından oluşturulur, sunulur ve desteklenir, Kurumsal bir katkı yok!

Ubuntu , Fedora, openSUSE… Tüm bu büyük dağıtımlar kurumsal destekli dağıtımlardır.Kurumsal destek almak kötü bir durum değildir elbette ve bir suç teşkil etmez. Ancak bir kısım insan açık kaynak projelerine kurumsal katılımı sevmiyor.

Debian gibi, Arch Linux da sadece topluluk bazında ilerleyen nadide Linux dağıtım projelerinden biridir.

Örneğin Linux Mint’in(veya onun gibi gibi bir çok popüler dağıtımın da) herhangi şirket tarafından desteklenmediğini söyleyebilirsiniz, bu doğru, ancak Linux Mint’in kendisi Ubuntu’yu temel alır ve Ubuntu’nun depolarını kullanır. Arch Linux ise başka bir dağıtımın türevi değildir.Bu anlamda Debian ve Arch Linux daha saf topluluk odaklı projelerdir.

Bazıları için önemli olmayabilir, ancak yine bazıları bunu önemsiyor.

July 22, 2020

PasswordCard ile hatırlaması kolay güvenli şifreler

Hatırlanacağı gibi, kolay hatırlanabilir, güvenli parolalar oluşturmanın en iyi yolu olarak tarif edilen Zarola’yı konu alan “Parola değil Zarola!” adlı haberimizi birkaç gün önce yapmıştık. Kolay hatırlanabilir, güvenli parolalar oluşturma konusuna 2014 Linux Yaz Kampı’ndan tanıdığım Sevgili Çağrı Ersen de PasswordCard konusuna kendi blogu syslogs.org üzerinden değinmiş. “Bu sitede yayınlanan herşeyi, başka mecralarda istediğiniz gibi ve herhangi bir kaynak göstermeksizin kullanabilirsiniz.” diyen Sevgili Ersen’in yazısını buraya aktarmayı gerekli gördüm. Sözlerine: “PasswordCard, uzun ve karmaşık şifreler üretmeye ve bunları kolayca hatırlamaya olanak sağlayan zekice düşünülmüş ve güzel bir şifre sistemidir. Üstelik, -resimde bir örneği görüldüğü üzere- kredi kartı ebatlarında olması ve cüzdanda taşınabilmesinden ötürü şifrelerinizi güvenle yanınızda taşımaya da olanak sağlıyor.” diye başlıyor Çağrı Ersen.Ve yazı aşağıda olduğu gibi devam ediyor.


Çağrı Ersen

Üst satırında semboller ve yukarıdan aşağı sol sırasında rakamlar bulunan, farklı renk satırlara sahip PasswordCard sayesinde, üretilen şifrelerin akılda tutulmasına gerek kalmıyor. Şifrenizin sembol ile sıra numarasını/rengini bilmeniz, şifrenizi hatırlamanız için yeterli oluyor.

Bilgi güvenliğinin yumuşak karnı olan zayıf ve tahmin edilebilir şifrelerden sakınmaya olanak sağlayan bir araç olmasından ötürü, yazının devamında, PasswordCard ile ilgili biraz daha fazla detaya değinmek istiyorum;

Benzersiz (Unique) Şifre Kartları
PasswordCard, http://www.passwordcard.org/ adresinden edinebiliyor ve ilgili siteye her girişte bir yenisi üretildiği için her bir kartın eşşiz (unique) olması sağlanıyor. Bu şekilde siteden çıktısını aldığınız şifre kartınız sadece size özel oluyor. Ayrıca, kart üretilirken bir de ID no veriliyor, bu şekilde yarın öbürgün, şifrelerinizi oluşturduğunuz şifre kartınızı kaybetmeniz durumunda siteden ID numaranız ile aynı kartı yeniden üretebiliyorsunuz.

Kolaylık
PasswordCard uzun ve karmaşık şifreleri akılda tutma zorunluluğunu ortadan kaldırarak işleri son derece kolaylaştırıyor. Örnek olarak büyük küçük harf ve rakamlardan oluşan 10 karakter uzunluğunda bir şifre ürettiğiniz zaman, bu karmaşık şifre yerine aklınızda tutmanız gerekenler aşağıdaki basit bilgiler oluyor:

Sembol / Satır Numarası (ya da Satır Rengi)
Şifreyi oluşturan karakter dizesinin yönü. (Soldan sağa, Yukarıdan Aşağı, Çapraz vs. gibi)
Şifrenin kaç karakterden oluştuğu.

Bu şekilde, misal olarak yukarıdaki şifre kartı kullanılarak üretilen 10 haneli 899NX2xCPr gibi bir şifreyi hatırlamak için, “kare, 7 (pembe), soldan sağa, 10″ bilgisini akılda tutmanız yeterli oluyor. Elbette, şifrelerinizin yönünü soldan sağa yerine, sağdan sola, aşağıdan yukarı gibi alışılmadık yönlere göre seçip, tahmin edilmelerini daha da zorlaştırabiliyorsunuz .
Ekstra Özellikler
Bunun yanı sıra, siteye girdiğiniz zaman oluşturulan kart öntanımlı olarak sadece rakam ve harflerden oluşuyor fakat sayfadaki “check this to include symbols.” yazan kutucuğu işaretlerseniz, harf ve rakamların yanı sıra, karta semboller de ekleniyor. Bu şekilde daha da güçlü şifreler üretmeye olanak sağlanıyor.

Ayrıca, aynı alanda bir de “check this for an area with only digits.” yazan bir kutucuk bulunuyor. Bunu işaretlemeniz durumunda ise, kartın belli bir bölümü sadece rakamlardan oluşuyor. Böylece, banka ya da kredi kartı gibi sadece rakamdan oluşması gereken şifreler de PasswordCard ile üretilebiliyor.
Ekstra Güvenlik
Güvenlik konusunda exstra titizseniz, PasswordCard servisine https://www.passwordcard.org/ şeklinde HTTPS üzerinden de erişebiliyorsunuz,

Son olarak, ben PasswordCard fikrini çok beğendim. Belki siz de kullanmak istersiniz.

syslogs.org

July 21, 2020

Linux: /tmp Dizini Hakkında Bilmeniz Gereken Her Şey

/tmp veya /var/tmp dizinine, internette gördüğüm bir yazıyı okuyana kadar hiç gerekli özeni ve dikkati vermediğimi fark ettim.Ben de bundan hareketle bu makaleyi hazırladım.Faydalı olması dileklerimle, iyi okumalar.

Linux /tmp dizini nedir?
Linux tabanlı sistemlerde /tmp dizini,  sistemde çalışan çalışan yazılım ve uygulamalar için gerek duyulan geçici dosyaların tutulduğu dizindir.Örneğin, bir belge yazarken, belgenin içindeki tüm içerik /tmp dizinine geçici bir dosya olarak kaydedilir.Hazırladığınız belgeyi kaydederek, istediğiniz konumda konumda saklarsınız ve belgeden çıktığınızda geçici dosya kaldırılır.

/tmp dizini ile /var/tmp dizini arasındaki fark nedir?

Temel olarak hem /tmp hem de /var/tmp, verileri geçici olarak depolamak için kullanılır. Bununla birlikte aralarındaki eas fark, verilerin bu dosya sistemlerinde ne kadar süreyle saklandığıdır. /var/tmp için veri saklama süresi, /tmp dizinininkinden çok daha uzundur.

Varsayılan olarak, /var/tmp dizininde depolanan tüm dosyalar ve veriler 30 güne kadar saklanır. /tmp içindeki veriler ise, (sistem yeniden başlatıladığı süece) on günden sonra otomatik olarak silinir.

Ayrıca, /tmp dizininde depolanan geçici dosyalar sistem yeniden başlatıldığında hemen kaldırılır.Bu nedenle, /var/tmp dizini, yeniden başlatmalar arasında geçici olarak korunması gereken verileri depolamak için programlar tarafından kullanılır.

/tmp dizini dolabilir mi?

/tmp dizininde depolanan dosyaların ve verilerin boyutu yalnızca birkaç KB’dir. Dolayısıyla /tmp dizininin doldması mümkün olsa da zordur.

Ortalama bir sistemde, /tmp dizinini doldurmak için, dizinde milyonlarca geçici dosya bulnması gerekir. Yeniden başlatma /tmp dizininde depolanan tüm dosyaları kaldırdığından, bu, sık sık kapatılan tek kullanıcılı bir sistemde endişelenmenizi gerektirecek bir şey değildir.

Ancak, nadiren yeniden başlatılan ve binlerce kullanıcıyı barındıran bir sunucu çalıştıran bir sistem yöneticisiyseniz, /tmp dizinini doldurmak bir sorun olabilir.Dizinde geçici dosya yığıldıkça, tüm depolama alanını yavaşça tehdit edecektir, ki bu da genel sistem sağlığı için endişe verici bir haber olabilir.

/tmp dizininde depolanan dosyalar nasıl silinir?

Ne yaptığınızdan emimn değilseniz, /tmp dizini içindeki dosyaları silmeniz önerilmez.Bunlar önemlidir ve sisteminizde çalışan yazılım için gereklidir. Bunların kaldırılması sistemin çökmesine neden olabilir. /tmp dizininde depolanan dosyalar ve veriler sistem yeniden başlatıldığında otomatik olarak silindiği için, çok ta endişelenmeniz gerekmez.

Ancak, aylarca çalışan sunucular için, geçici dosyalar taşmadan önce /tmp dizininde zaman zaman temizlik elzemdir.

Yanlışlıkla /tmp dizinini sildim, şimdi ne yapacağım?

/tmp dosyalarını el ile silerken, bazı kullanıcılar yanlışlıkla /tmp dizinini de siler.Böyle bir durumda silinen / tmp dizinini hızlı bir şekilde geri yükleyebilirsiniz.

Tek yapmanız gereken terminalinize aşağıdaki komutları girmektir:

$ sudo mkdir / tmp
$ sudo chmod 1777 / tmp

İlk satır yeni bir /tmp dizini oluşturur. İkinci satır, tüm kullanıcılara /tmp dizinindeki dosyaları okuma, yazma ve çalıştırma izni verir.

Sonra, tüm kullanıcılarınızın kullanabildiğinden emin olmak ve /tmp dizininin tüm izinlerini kontrol etmek için bu komutu girebilirsiniz:

$ ls -ld / tmp

Her şeyin yolunda olduğunu kontrol ettikten sonra, sisteminizi yeniden başlatmanız gerekir.Bu, programların yeni oluşturulan /tmp dizinini kullanmaya başlamasını sağlayacaktır.

July 15, 2020

İrdelemeler: Xfce’i Favori Masaüstü Ortamınız Olarak Kullanmanız İçin En İyi 10 Neden

Yıllardır kullandığınız işletim sistemini bırakarak Linux’a geçmek… Başlangıç için biraz zorlayıcı olabilir.Çünkü aralarından seçim yapabileceğiniz yüzlerce Linux dağıtımı var.Bu da yetmezmiş gibi GNOME, KDE, Xfce, Cinnamon, MATE gibi bir çok masaüstü ortamı mevcut.Bu yazı, popüler ve hafif masaüstü ortamlarından biri olan Xfce’yi konu edinmektedir.

Masaüstü ortamlarıyla ilgili İrdelemeler’imizde KDE ve Cinnamon için en iyi 10 nedene değinmiştik.Bu makale de, Xfce’i masaüstü ortamınız olarak kullanmanız için en iyi on nedene değiniyor.

Xfce masaüstü ortamı, Linux dağıtımları için kullanıma sunulan en eski GUI tabanlı masaüstü ortamlarından birisidir.Başlangıç yılı 1996’dır.Bazı çok belirgin özelliklere sahiptir.Bunlardan en göze çarpanları sadeliği ve hafifliğidir.

Halen aktif olarak geliştirimeye devam edlen Xfce, masaüstü ortamları arenasındaki en önemli masaüstü ortamlarından biridir. Buna rağmen Xfce, GNOME veya KDE gibi diğer önemli masaüstü ortamlarına nazaran daha az ilgi görüyor.Birçok kullanıcı ‘eski’ göründüğünü düşünüyor ve uzak duruyor.Bu kısmen kabul edilebilir belki ama, küçük dokunuşlarla oldukça ‘modern’ bir görünüme kavuşturulabiliyor.

1. Sadelik

Xfce yıllar içersinde sadelikle eş anlamlı hale geldi. Elbette buradaki ‘sadelik’ kavramı minimallikten çok, işleri halletmenin çok daha rahat olduğu anlamındadır.Kullanıcılar istediklerini bulmak ve yapmak için ayrıntılar içinde kaybolmuyorlar.Örneğin Ayarlar Yöneticisi, diğer tüm büyük masaüstü oertamları arasında en iyisi olarak gösterilebiir.Basittir ve iyi kategorize edilmiştir.Benzer şekilde, Xfce’in diğer tüm bileşenleri de çok iyi yapılandırılmıştır.

2. Hafiflik

Xfce’nin bir başka popüler ve önemli yönü de hafif yapısıdır.Oldukça küçük bir pakettir ve çoğu durumda da sistem kaynağı tüketme konusunda oldukça cimridir.

3. Performans

Şimdi, bi üst maddede bahsi geçen sistem kaynağı tüketme konusunda cimriliğinin doğal sonucu olarak, Xfce çoğu donanımda çok iyi performans gösterir.Hızlı, duyarlı ve iş bitirici… Biraz deneme ve deneyimden sonra, kullanıcılar sistemihızlı bir şekilde kullanabilirler ve optimum üretkenlikten yararlanabilirler.Boşta (veya düşük aktivitelerde) CPU kullanımı çok azdır.

4. Modülerlik

Xfce’nin tamamen modüler bir yapıdadır.Sistemin elemanlarının çoğu ayrıdır, bu da sistemi çok daha yapılandırılabilir hale getirir.Örneğin, varsayılan pencere yöneticisi Xfwm’dir; yapılandırma sistemi Xfconf, masaüstü yöneticisi Xfdesktop ve oturum yöneticisi Xfce4-session… Tüm bileşenlerin ayarları, Ayarlar Yöneticisi’nde bir araya getirilmiştir.

Xfce ekibinin kendi sözleriyle:

“Xfce, UNIX’in geleneksel modülerlik ve yeniden kullanılabilirlik felsefesini somutlaştırıyor.Modern bir masaüstü ortamından bekleyebileceğiniz tam işlevselliği sağlayan bir dizi bileşenden oluşur. Ayrı olarak paketlenirler ve en uygun kişisel çalışma ortamını oluşturmak için mevcut paketler arasından seçim yapabilirsiniz.”

5. Yapılandırılabilirlik

Xfce, yapılandırılabilirlik açısından mükemmeldir.Arabirimden donanım tercihlerine kadar, her şey kolayca ayarlanabilir.Ayarlar Yöneticisi gereken hemen her şeyi kapsar.Görünüm gelince…Çeşitli simge temaları ve sistem temaları ve daha fazlası için https://www.xfce-look.org kullanıma hazırdır.

6. Kararlılık

Xfce projesi kararlıdr.Sistemin kullanımı genel olarak oldukça sıkıntısızdır. Masaüstü ortamının tüm bileşenleri, kullanıcılara sorunsuz bir deneyim sağlamak için birlikte çok iyi çalışırlar.

7. Panel

Xfce’in en belirgin özelliklerinden biri panelidir. Xfce ekibi tarafından sağlanan birkaç eklenti ile son derece yapılandırılabilir bir yapıya sahiptir.Panelin genişliği ve yüksekliği değiştirilebilir ve kullanıcılar istedikleri gibi ekrana yerleştirilebilirler.Eğer canınız istiyorsa paneli ekranın ortasına bile yerleştirebilirsiniz.

İstediğiniz sayıda panel de ekleyebilirsiniz.Varsayılan olarak, Xfce’in zaten sağladığı panellerden biri ekranın altına yerleştirilmiştir.

Bazı panel eklentileri CPU Graph eklentisi, Çalışma alanı eklentisi, Notes eklentisi, Pomodoro eklentisi, Çalışma alanı eklentisi olarak sıralanabilir.

8. Entegrasyon

Xfce üzerine yüklediğiniz programlar, hangi orijinal masaüstü ortamı için geliştirildiğine veya Qt veya GTK olmasına bakılmaksızın iyi görünür.Tüm GTK programları kusursuz çalışırken, Qt programlarında küçük sorunlar çıkabilir.Bu durumda da, özellikle  Qt uygulamalarının teması ve yapılandırması için Kvantum gibi bazı programlar kullanılabilir.

9. Kolay Onarım

Kim olursanız olun, bir işletim sistemi kullanırsanız, çok kararlı bir dağıtımda inanılmaz derecede düzenli olmadıkça, muhtemelen bir kez kırılacaktır. Belki bir güncelleme veya belki de kullanıcı tarafından yapılan bir hata nedeniyle. Diğer DE’lerde, çoğu şey birbirine entegre edilmiştir. Örneğin, uygulama menüsünü kırırsanız, büyük olasılıkla tüm DE’yi yeniden yapılandırmanız gerekecektir. Xfce’de belirttiğimiz gibi, işler modülerdir. Menü bozulursa, yeniden yükleyin! Bunu yapmak oldukça basit.

10. Xfce Bileşenleri

Son maddede Xfce’in genel özelliklerinden bileşenlere geliyoruz.Bileşenler bir masastü ortamının parçalarıdır ve masaüstü ortamı hakkında konuşurken bunları da dikkate alınması gerekir.

Xfce bileşenlerinin bazıarına bakalım…

Thunar (Dosya Yöneticisi): Xfce’nin varsayılan dosya yöneticisi Thunar olarak adlandırılır ve oldukça yetenekli bir programdır. Basit özelliklere sahiptir, kararlıdır ve tüm temel özelliklere sahiptir.

Xfce-Terminal (Terminal): Xfce-terminal mükemmel bir işlevselliğe sahiptir.

Mousepad (metin editörü): Mousepad hızlıdır ve iyi iş görür.Renk temasını, yazı tipi stilini, aramaları vb. değiştirmek için temel özelliklere sahiptir.

XFCE kullanan popüler Linux Dağıtımları

Yukarıda saydığımız nedenler sizi XFCE masaüstünü denemek için yeterince heyecanlandırdıysa, Manjaro XFCE Edition, Linux Mint Xfce, Linux Lite, MX Linux, Xubuntu, Fedora Xfce Spin ve Zorin OS dahil olmak üzere seçebileceğiniz birkaç harika Linux dağıtımı var.Tüm bunlar XFCE’yi denemek için mükemmel seçimlerdir.

Sonuç

Xfce genel olarak büyük bir masaüstü ortamdır.Çok kararlı, özellik dolu bir deneyim vaat eder.Özelleştirme seçenekleri yüksektir ve kişiselleştirme için mükemmel esneklik/yapılandırma sunar.Ne yazık ki, Xfce’nin gelişiminin son zamanlarda çok ta aktif olmadığı görülebiliyor.Ekibin tekrar destek bulması ve gelecekte daha fantastik bir ilerleme göstermesi en büyük dileğimdir.

July 14, 2020

kdenlive nvenc profili tanimliyoruz

Video render işlemlerini hızlandırması için kdenlive‘a bir nvenc GPU render profili tanımladım. Bu tanımı oluşturmak, sadeleştirmek ve test etmek oldukça zor oldu. ffmpeg, kdenlive ve nvenc üçünün de kullandığı parametreler benzer olsada birbirlerinden farklılık gösteriyor. Bir de bunlara sürümler arası parametre farklılıkları eklenince, içinden çıkılmaz bir hal aldı ve çok fazla test yapmam gerekti.

Parametreleri oluştururken üç farklı kaynaktan yararlandım, Youtube tavsiyeleri [1], Nvidia teknik blogu [2] ve bir blogger in yazısı [3]. Umarım sizin için yol gösterici olur.

h264;
f=mp4 vcodec=h264_nvenc preset=medium global_quality=16 profile:v=high bf=3 temporal-aq=1 rc-lookahead=20 vsync=0 movflags=faststart acodec=aac ab=384k
h265;
f=mp4 vcodec=hevc_nvenc preset=medium global_quality=16 profile:v=main temporal-aq=1 rc-lookahead=20 vsync=0 movflags=faststart acodec=aac ab=384k

[1] https://support.google.com/youtube/answer/1722171?hl=en
[2] https://developer.nvidia.com/blog/turing-h264-video-encoding-speed-and-quality/
[3] https://flamy.ca/blog/2019-10-14-kdenlive-nvenc-video-settings-for-youtube.html

Hamdi Özcan – ozcan.com

July 13, 2020

Depth First Search algorithm in Python (Multiple Examples)

Depth First Search is a popular graph traversal algorithm. In this tutorial, We will understand how it works, along with examples; and how we can implement it in Python. Graphs and Trees are one of the most important data structures we use for various applications in Computer Science. They represent data in the form of nodes, which are connected to other nodes through ‘edges’. Like other data structures, traversing all the elements or searching for an element in a graph or a tree is one of the fundamental operations that is required to define such data structures. Depth First Search is one such graph traversal algorithm. Depth First Search begins by looking at the root node (an arbitrary node) of a graph. If we are performing a traversal of the entire graph, it visits the first child of a root node, then, in turn, looks at the first child of this node and continues along this branch until it reaches a leaf node. Next, it backtracks and explores the other children of the parent node in a similar manner. This continues until we visit all the nodes of the tree, and there is no parent node left to explore.

Introduction

Graphs and Trees are one of the most important data structures we use for various applications in Computer Science.
They represent data in the form of nodes, which are connected to other nodes through ‘edges’.

Like other data structures, traversing all the elements or searching for an element in a graph or a tree is one of the fundamental operations that is required to define such data structures. Depth First Search is one such graph traversal algorithm.

The Depth First Search Algorithm

Depth First Search begins by looking at the root node (an arbitrary node) of a graph. If we are performing a traversal of the entire graph, it visits the first child of a root node, then, in turn, looks at the first child of this node and continues along this branch until it reaches a leaf node.

Next, it backtracks and explores the other children of the parent node in a similar manner. This continues until we visit all the nodes of the tree, and there is no parent node left to explore.

source: Wikipedia

However, if we are performing a search of a particular element, then at each step, a comparison operation will occur with the node we are currently at.
If the element is not present in a particular node, then the same process exploring each branch and backtracking takes place.

This continues until either all the nodes of the graph have been visited, or we have found the element we were looking for.

Representing a graph

Before we try to implement the DFS algorithm in Python, it is necessary to first understand how to represent a graph in Python.

There are various versions of a graph. A graph may have directed edges (defining the source and destination) between two nodes, or undirected edges. The edges between nodes may or may not have weights. Depending on the application, we may use any of the various versions of a graph.

For the purpose of traversal through the entire graph, we will use graphs with directed edges (since we need to model parent-child relation between nodes), and the edges will have no weights since all we care about is the complete traversal of the graph.

Now there are various ways to represent a graph in Python; two of the most common ways are the following:

  1. Adjacency Matrix
  2. Adjacency List

Adjacency Matrix

Adjacency Matrix is a square matrix of shape N x N (where N is the number of nodes in the graph).
Each row represents a node, and each of the columns represents a potential child of that node.
Each (row, column) pair represents a potential edge.

Whether or not the edge exists depends on the value of the corresponding position in the matrix.
A non-zero value at the position (i,j) indicates the existence of an edge between nodes i and j, while the value zero means there exists no edge between i and j.

The values in the adjacency matrix may either be a binary number or a real number.
We can use binary values in a non-weighted graph (1 means edge exists, and a 0 means it doesn’t).
For real values, we can use them for a weighted graph and represent the weight associated with the edge between the row and column representing the position.

E.g., a value 10 between at position (2,3) indicates there exists an edge bearing weight 10 between nodes 2 and 3.

In Python, we can represent the adjacency matrices using a 2-dimensional NumPy array.

Adjacency List

Adjacency List is a collection of several lists. Each list represents a node in the graph, and stores all the neighbors/children of this node.

In Python, an adjacency list can be represented using a dictionary where the keys are the nodes of the graph, and their values are a list storing the neighbors of these nodes.

We will use this representation for our implementation of the DFS algorithm.

Let’s take an example graph and represent it using a dictionary in Python.

The given graph has the following four edges:

  1. A -> B
  2. A -> C
  3. B -> C
  4. C -> D

Let’s now create a dictionary in Python to represent this graph.
graph = {"A": ["B", "C"],
"B": ["C"],
"C": ["D"]}

Now that we know how to represent a graph in Python, we can move on to the implementation of the DFS algorithm.

Implementing Depth First Search(a non-recursive approach)

We will consider the graph example shown in the animation in the first section.

Let’s define this graph as an adjacency list using the Python dictionary.

graph = {"A":["D","C","B"],
"B":["E"],
"C":["G","F"],
"D":["H"],
"E":["I"],
"F":["J"]}

One of the expected orders of traversal for this graph using DFS would be:

Let’s implement a method that accepts a graph and traverses through it using DFS. We can achieve this using both recursion technique as well as non-recursive, iterative approach.
In this section, we’ll look at the iterative method.

We will use a stack and a list to keep track of the visited nodes.
We’ll begin at the root node, append it to the path and mark it as visited. Then we will add all of its neighbors to the stack.
At each step, we will pop out an element from the stack and check if it has been visited.
If it has not been visited, we’ll add it to the path and add all of its neighbors to the stack.

def dfs_non_recursive(graph, source):

if source is None or source not in graph:

return "Invalid input"

path = []

stack = [source]

while(len(stack) != 0):

s = stack.pop()

if s not in path:

path.append(s)

if s not in graph:

#leaf node
continue

for neighbor in graph[s]:

stack.append(neighbor)

return " ".join(path)

Our user-defined method takes the dictionary representing the graph and a source node as input.
Note that the source node has to be one of the nodes in the dictionary, else the method will return an “Invalid input” error.

Let’s call this method on our defined graph, and verify that the order of traversal matches with that demonstrated in the figure above.

DFS_path = dfs_non_recursive(graph, "A")

print(DFS_path)

Output :

Thus the order of traversal of the graph is in the ‘Depth First’ manner.

DFS using a recursive method

We can implement the Depth First Search algorithm using a popular problem-solving approach called recursion.

Recursion is a technique in which the same problem is divided into smaller instances, and the same method is recursively called within its body.

We will define a base case inside our method, which is – ‘If the leaf node has been visited, we need to backtrack’.

Let’s implement the method:

def recursive_dfs(graph, source,path = []):

if source not in path:

path.append(source)

if source not in graph:
# leaf node, backtrack
return path

for neighbour in graph[source]:

path = recursive_dfs(graph, neighbour, path)

return path

Now we can create our graph (same as in the previous section), and call the recursive method.

graph = {"A":["B","C", "D"],
"B":["E"],
"C":["F","G"],
"D":["H"],
"E":["I"],
"F":["J"]}

path = recursive_dfs(graph, "A")

print(" ".join(path))

Output:

The order of traversal is again in the Depth-First manner.

Depth First Search on a Binary Tree

What is a Binary Tree?

A binary tree is a special kind of graph in which each node can have only two children or no child.
Another important property of a binary tree is that the value of the left child of the node will be less than or equal to the current node’s value.
Similarly, the value in the right child is greater than the current node’s value.

Thus every value in the left branch of the root node is smaller than the value at the root, and those in the right branch will have a value greater than that at the root.

Let’s understand how we can represent a binary tree using Python classes.

Representing Binary Trees using Python classes

We can create a class to represent each node in a tree, along with its left and right children.
Using the root node object, we can parse the whole tree.

We will also define a method to insert new values into a binary tree.

class Node:

def __init__(self, value):

self.value = value

self.left = None

self.right = None

def insert(self, value):

if value:

if value < self.value:

if self.left is None:

self.left = Node(value)

else:

self.left.insert(value)

elif value > self.value:

if self.right is None:

self.right = Node(value)

else:

self.right.insert(value)

else:

self.value = value

Let’s now create a root node object and insert values in it to construct a binary tree like the one shown in the figure in the previous section.

root = Node(7)

root.insert(2)

root.insert(25)

root.insert(9)

root.insert(80)

root.insert(0)

root.insert(5)

root.insert(15)

root.insert(8)

This will construct the binary tree shown in the figure above.
It will also ensure that the properties of binary trees i.e, ‘2 children per node’ and ‘left < root < right’ are satisfied no matter in what order we insert the values.

Implementing DFS for a binary tree

Let’s now define a recursive function that takes as input the root node and displays all the values in the tree in the ‘Depth First Search’ order.

def dfs_binary_tree(root):

if root is None:

return

else:

print(root.value,end=" ")

dfs_binary_tree(root.left)

dfs_binary_tree(root.right)

We can now call this method and pass the root node object we just created.

dfs_binary_tree(root)

Output:

This order is also called as the ‘preorder traversal’ of a binary tree.

Depth First Search using networkx

So far, we have been writing our logic for representing graphs and traversing them.
But, like all other important applications, Python offers a library to handle graphs as well. It is called ‘networkx’.

‘networkx’ is a Python package to represent graphs using nodes and edges, and it offers a variety of methods to perform different operations on graphs, including the DFS traversal.

Let’s first look at how to construct a graph using networkx.

Constructing a graph in networkx

To construct a graph in networkx, we first create a graph object and then add all the nodes in the graph using the ‘add_node()’ method, followed by defining all the edges between the nodes, using the ‘add_edge()’ method.

Let’s construct the following graph using ‘networkx’.

import networkx as nx

G = nx.Graph() #create a graph

G.add_node(1) # add single node

G.add_node(2)

G.add_node(3)

G.add_node(4)

G.add_node(5)

G.add_nodes_from([6,7,8,9]) #add multiple nodes

Now that we have added all the nodes let’s define the edges between these nodes as shown in the figure.

# adding edges

G.add_edge(5,8)

G.add_edge(5,4)

G.add_edge(5,7)

G.add_edge(8,2)

G.add_edge(4,3)

G.add_edge(4,1)

G.add_edge(7,6)

G.add_edge(6,9)

Visualizing the graph in DFS

Now, we constructed the graph by defining the nodes and edges let’s see how it looks the networkx’s ‘draw()’ method and verify if it is constructed the way we wanted it to be. We will use matplotlib to show the graph.

import matplotlib.pyplot as plt

nx.draw(G, with_labels=True, font_weight='bold')

plt.show()

Output:

The orientation may be a little different than our design, but it resembles the same graph, with the nodes and the same edges between them.

Let’s now perform DFS traversal on this graph.

Graph traversal in networkx – DFS

The ‘networkx’ offers a range of methods for traversal of the graph in different ways. We will use the ‘dfs_preorder_nodes()’ method to parse the graph in the Depth First Search order.

The expected order from the figure should be:
5, 8, 2, 4, 3, 1, 7, 6, 9

Let’s call the method and see in what order it prints the nodes.

dfs_output = list(nx.dfs_preorder_nodes(G, source=5))

print(dfs_output)

Output:

Thus the order of traversal by networkx is along our expected lines.

Now that we have understood the depth-first search or DFS traversal well, let’s look at some of its applications.

Topological sorting using Depth First Search

Topological sorting is one of the important applications of graphs used to model many real-life problems where the beginning of a task is dependent on the completion of some other task.

For instance, we may represent a number of jobs or tasks using nodes of a graph.
Some of the tasks may be dependent on the completion of some other task. This dependency is modeled through directed edges between nodes.
A graph with directed edges is called a directed graph.

If we want to perform a scheduling operation from such a set of tasks, we have to ensure that the dependency relation is not violated i.e, any task that comes later in a chain of tasks is always performed only after all the tasks before it has finished.
We can achieve this kind of order through the topological sorting of the graph.

Note that for topological sorting to be possible, there has to be no directed cycle present in the graph, that is, the graph has to be a directed acyclic graph or DAG.

Let’s take an example of a DAG and perform topological sorting on it, using the Depth First Search approach.

Let’s say each node in the above graph represents a task in a factory to produce a product. The directed arrows between the nodes model are the dependencies of each task on the completion of the previous tasks.

Hence whatever ordering of tasks we chose to perform, to begin the task C, tasks A and E must have been completed.

Similarly, for performing the task I, the tasks A, E, C, and F must have been completed. Since there is no inward arrow on node H, the task H can be performed at any point without the dependency on completion of any other task.

We can construct such a directed graph using Python networkx’s ‘digraph’ module.

dag = nx.digraph.DiGraph()

dag.add_nodes_from(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'])

dag.add_edges_from([('A', 'B'), ('A', 'E'), ('B', 'D'), ('E', 'C'),
('D', 'G'),('C', 'G'),('C', 'I'), ('F', 'I')])

Note that we have used the methods ‘add_nodes_from()’ and ‘add_edges_from()’ to add all the nodes and edges of the directed graph at once.

We can now write a function to perform topological sorting using DFS.

We will begin at a node with no inward arrow, and keep exploring one of its branches until we hit a leaf node, and then we backtrack and explore other branches.

Once we explore all the branches of a node, we will mark the node as ‘visited’ and push it to a stack.

Once every node is visited, we can perform repeated pop operations on the stack to give us a topologically sorted ordering of the tasks.

Now let’s translate this idea into a Python function:

def dfs(dag, start, visited, stack):

if start in visited:

# node and all its branches have been visited
return stack, visited

if dag.out_degree(start) == 0:

# if leaf node, push and backtrack
stack.append(start)

visited.append(start)

return stack, visited

#traverse all the branches
for node in dag.neighbors(start):

if node in visited:

continue

stack, visited = dfs(dag, node, visited, stack)

#now, push the node if not already visited
if start not in visited:

print("pushing %s"%start)

stack.append(start)

visited.append(start)

return stack, visited

def topological_sort_using_dfs(dag):

visited = []

stack=[]

start_nodes = [i for i in dag.nodes if dag.in_degree(i)==0]

# print(start_nodes)

for s in start_nodes:

stack, visited = dfs(dag, s, visited, stack)

print("Topological sorted:")

while(len(stack)!=0):

print(stack.pop(), end=" ")

We have defined two functions – one for recursive traversal of a node, and the main topological sort function that first finds all nodes with no dependency and then traverses each of them using the Depth First Search approach.
Finally, it pops out values from the stack, which produces a topological sorting of the nodes.

Let’s now call the function ‘topological_sort_using_dfs()’

topological_sort_using_dfs(dag)

Output :

If we look closely at the output order, we’ll find that whenever each of the jobs starts, it has all its dependencies completed before it.

We can also compare this with the output of a topological sort method included in the ‘networkx’ module called ‘topological_sort()’.

topological_sorting = nx.topological_sort(dag)

for n in topological_sorting:

print(n, end=' ')

Output:

It looks like the ordering produced by the networkx’s sort method is the same as the one produced by our method.

Finding connected components using DFS

A graph has another important property called the connected components. A connected component in an undirected graph refers to a set of nodes in which each vertex is connected to every other vertex through a path.

Let’s look at the following example:

In the graph shown above, there are three connected components; each of them has been marked in pink.

Let’s construct this graph in Python, and then chart out a way to find connected components in it.

graph = nx.Graph()

graph.add_nodes_from(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'])

graph.add_edges_from([('A', 'B'), ('B', 'E'), ('A', 'E')]) #component 1

graph.add_edges_from([('C', 'D'), ('D', 'H'), ('H', 'F'), ('F', 'C')]) #component 2

graph.add_edge('G','I') #component 3

Let’s also visualize it while we are at it.

import matplotlib.pyplot as plt

nx.draw(graph, with_labels=True, font_weight='bold')

plt.show()

Output:

To find connected components using DFS, we will maintain a common global array called ‘visited’, and every time we encounter a new variable that has not been visited, we will start finding which connected component it is a part of.

We will mark every node in that component as ‘visited’ so we will not be able to revisit it to find another connected component.

We will repeat this procedure for every node, and the number of times we called the DFS method to find connected components from a node, will be equal to the number of connected components in the graph.

Let’s write this logic in Python and run it on the graph we just constructed:

def find_connected_components(graph):

visited = []

connected_components = []

for node in graph.nodes:

if node not in visited:

cc = [] #connected component

visited, cc = dfs_traversal(graph, node, visited, cc)

connected_components.append(cc)

return connected_components

def dfs_traversal(graph, start, visited, path):

if start in visited:

return visited, path

visited.append(start)

path.append(start)

for node in graph.neighbors(start):

visited, path = dfs_traversal(graph, node, visited, path)

return visited, path

Let’s use our method on the graph we constructed in the previous step.

connected_components = find_connected_components(graph)

print("Total number of connected components =", len(connected_components))

for cc in connected_components:

print(cc)

Output:

Conclusion

In this blog, we understood the DFS algorithm and used it in different ways.

We began by understanding how a graph can be represented using common data structures and implemented each of them in Python.

We then implemented the Depth First Search traversal algorithm using both the recursive and non-recursive approach.

Next, we looked at a special form of a graph called the binary tree and implemented the DFS algorithm on the same.
Here we represented the entire tree using node objects constructed from the Python class we defined to represent a node.

Then we looked at Python’s offering for representing graphs and performing operations on them – the ‘networkx’ module.
We used it to construct a graph, visualize it, and run our DFS method on it. We compared the output with the module’s own DFS traversal method.

Finally, we looked at two important applications of the Depth First Search traversal namely, topological sort and finding connected components in a graph.

Python correlation matrix tutorial

In this blog, we will go through an important descriptive statistic of multi-variable data called the correlation matrix. We will learn how to create, plot, and manipulate correlation matrices in Python. We will be looking at the following topics:
1 What is the correlation matrix?,
1.1 What is the correlation coefficient?
2 Finding the correlation matrix of the given data
3 Plotting the correlation matrix
4 Interpreting the correlation matrix
5 Adding title and labels to the plot
6 Sorting the correlation matrix
7 Selecting negative correlation pairs
8 Selecting strong correlation pairs (magnitude greater than 0.5)
9 Converting a covariance matrix into the correlation matrix
10 Exporting the correlation matrix to an image
11 Conclusion

What is the correlation matrix?

A correlation matrix is a tabular data representing the ‘correlations’ between pairs of variables in a given data.

We will construct this correlation matrix by the end of this blog.

Each row and column represents a variable, and each value in this matrix is the correlation coefficient between the variables represented by the corresponding row and column.

The Correlation matrix is an important data analysis metric that is computed to summarize data to understand the relationship between various variables and make decisions accordingly.

It is also an important pre-processing step in Machine Learning pipelines to compute and analyze the correlation matrix where dimensionality reduction is desired on a high-dimension data.

We mentioned how each cell in the correlation matrix is a ‘correlation coefficient‘ between the two variables corresponding to the row and column of the cell.

Let us understand what a correlation coefficient is before we move ahead.

What is the correlation coefficient?

A correlation coefficient is a number that denotes the strength of the relationship between two variables.

There are several types of correlation coefficients, but the most common of them all is the Pearson’s coefficient denoted by the Greek letter ρ (rho).

It is defined as the covariance between two variables divided by the product of the standard deviations of the two variables.

Where the covariance between X and Y COV(X, Y) is further defined as the ‘expected value of the product of the deviations of X and Y from their respective means’.
The formula for covariance would make it clearer.

So the formula for Pearson’s correlation would then become:

The value of ρ lies between -1 and +1.
Values nearing +1 indicate the presence of a strong positive relation between X and Y, whereas those nearing -1 indicate a strong negative relation between X and Y.
Values near to zero mean there is an absence of any relationship between X and Y.

Finding the correlation matrix of the given data

Let us generate random data for two variables and then construct the correlation matrix for them.

import numpy as np

np.random.seed(10)

# generating 10 random values for each of the two variables
X = np.random.randn(10)

Y = np.random.randn(10)

# computing the corrlation matrix
C = np.corrcoef(X,Y)

print(C)

Output:

Since we compute the correlation matrix of 2 variables, its dimensions are 2 x 2.
The value 0.02 indicates there doesn’t exist a relationship between the two variables. This was expected since their values were generated randomly.

In this example, we used NumPy’s `corrcoef` method to generate the correlation matrix.
However, this method has a limitation in that it can compute the correlation matrix between 2 variables only.

Hence, going ahead, we will use pandas DataFrames to store the data and to compute the correlation matrix on them.

Plotting the correlation matrix

For this explanation, we will use a data set that has more than just two features.

We will use the Breast Cancer data, a popular binary classification data used in introductory ML lessons.
We will load this data set from the scikit-learn’s dataset module.
It is returned in the form of NumPy arrays, but we will convert them into Pandas DataFrame.

from sklearn.datasets import load_breast_cancer

import pandas as pd

breast_cancer = load_breast_cancer()

data = breast_cancer.data

features = breast_cancer.feature_names

df = pd.DataFrame(data, columns = features)

print(df.shape)

print(features)

There are 30 features in the data, all of which are listed in the output above.

Our goal is now to determine the relationship between each pair of these columns. We will do so by plotting the correlation matrix.

To keep things simple, we’ll only use the first six columns and plot their correlation matrix.
To plot the matrix, we will use a popular visualization library called seaborn, which is built on top of matplotlib.

import seaborn as sns

import matplotlib.pyplot as plt

# taking all rows but only 6 columns
df_small = df.iloc[:,:6]

correlation_mat = df_small.corr()

sns.heatmap(correlation_mat, annot = True)

plt.show()

Output:

The plot shows a 6 x 6 matrix and color-fills each cell based on the correlation coefficient of the pair representing it.

Pandas DataFrame’s corr() method is used to compute the matrix. By default, it computes the Pearson’s correlation coefficient.
We could also use other methods such as Spearman’s coefficient or Kendall Tau correlation coefficient by passing an appropriate value to the parameter 'method'.

We’ve used seaborn’s heatmap() method to plot the matrix. The parameter ‘annot=True‘ displays the values of the correlation coefficient in each cell.

Let us now understand how to interpret the plotted correlation coefficient matrix.

Interpreting the correlation matrix

Let’s first reproduce the matrix generated in the earlier section and then discuss it.

You must keep the following points in mind with regards to the correlation matrices such as the one shown above:

  1. Each cell in the grid represents the value of the correlation coefficient between two variables.
  2. The value at position (a, b) represents the correlation coefficient between features at row a and column b. This will be equal to the value at position (b, a)
  3. It is a square matrix – each row represents a variable, and all the columns represent the same variables as rows, hence the number of rows = number of columns.
  4. It is a symmetric matrix – this makes sense because the correlation between a,b will be the same as that between b, a.
  5. All diagonal elements are 1. Since diagonal elements represent the correlation of each variable with itself, it will always be equal to 1.
  6. The axes ticks denote the feature each of them represents.
  7. A large positive value (near to 1.0) indicates a strong positive correlation, i.e., if the value of one of the variables increases, the value of the other variable increases as well.
  8. A large negative value (near to -1.0) indicates a strong negative correlation, i.e., the value of one variable decreases with the other’s increasing and vice-versa.
  9. A value near to 0 (both positive or negative) indicates the absence of any correlation between the two variables, and hence those variables are independent of each other.
  10. Each cell in the above matrix is also represented by shades of a color. Here darker shades of the color indicate smaller values while brighter shades correspond to larger values (near to 1).
    This scale is given with the help of a color-bar on the right side of the plot.

Adding title and labels to the plot

We can tweak the generated correlation matrix, just like any other Matplotlib plot. Let us see how we can add a title to the matrix and labels to the axes.

correlation_mat = df_small.corr()

sns.heatmap(correlation_mat, annot = True)

plt.title("Correlation matrix of Breast Cancer data")

plt.xlabel("cell nucleus features")

plt.ylabel("cell nucleus features")

plt.show()

Output:

If we want, we could also change the position of the title to bottom by specifying the y position.

correlation_mat = df_small.corr()

sns.heatmap(correlation_mat, annot = True)

plt.title("Correlation matrix of Breast Cancer data", y=-0.75)

plt.xlabel("cell nucleus features")

plt.ylabel("cell nucleus features")

plt.show()

Output:

Sorting the correlation matrix

If the given data has a large number of features, the correlation matrix can become very big and hence difficult to interpret.

Sometimes we might want to sort the values in the matrix and see the strength of correlation between various feature pairs in an increasing or decreasing order.
Let us see how we can achieve this.

First, we will convert the given matrix into a one-dimensional Series of values.

correlation_mat = df_small.corr()

corr_pairs = correlation_mat.unstack()

print(corr_pairs)

Output:

The unstack method on the Pandas DataFrame returns a Series with MultiIndex.That is, each value in the Series is represented by more than one indices, which in this case are the row and column indices that happen to be the feature names.

Let us now sort these values using the sort_values() method of the Pandas Series.

sorted_pairs = corr_pairs.sort_values(kind="quicksort")

print(sorted_pairs)

Output:

We can see each value is repeated twice in the sorted output. This is because our correlation matrix was a symmetric matrix, and each pair of features occurred twice in it.

Nonetheless, we now have the sorted correlation coefficient values of all pairs of features and can make decisions accordingly.

Selecting negative correlation pairs

We may want to select feature pairs having a particular range of values of the correlation coefficient.
Let’s see how we can choose pairs with a negative correlation from the sorted pairs we generated in the previous section.

negative_pairs = sorted_pairs[sorted_pairs < 0]

print(negative_pairs)

Output:

Selecting strong correlation pairs (magnitude greater than 0.5)

Let us use the same approach to choose strongly related features. That is, we will try to filter out those feature pairs whose correlation coefficient values are greater than 0.5 or less than -0.5.

strong_pairs = sorted_pairs[abs(sorted_pairs) > 0.5]

print(strong_pairs)

Output:

Converting a covariance matrix into the correlation matrix

We have seen the relationship between the covariance and correlation between a pair of variables in the introductory sections of this blog.

Let us understand how we can compute the covariance matrix of a given data in Python and then convert it into a correlation matrix. We’ll compare it with the correlation matrix we had generated using a direct method call.

First of all, Pandas doesn’t provide a method to compute covariance between all pairs of variables, so we’ll use NumPy’s cov() method.
cov = np.cov(df_small.T)

print(cov)

Output:

We’re passing the transpose of the matrix because the method expects a matrix in which each of the features is represented by a row rather than a column.

So we have gotten our numerator right.
Now we need to compute a 6×6 matrix in which the value at i, j is the product of standard deviations of features at positions i and j.

We’ll then divide the covariance matrix by this standard deviations matrix to compute the correlation matrix.

Let us first construct the standard deviations matrix.

#compute standard deviations of each of the 6 features
stds = np.std(df_small, axis = 0) #shape = (6,)

stds_matrix = np.array([[stds[i]*stds[j] for j in range(6)] for i in range(6)])

print("standard deviations matrix of shape:",stds_matrix.shape)

Output:

Now that we have the covariance matrix of shape (6,6) for the 6 features, and the pairwise product of features matrix of shape (6,6), we can divide the two and see if we get the desired resultant correlation matrix.

new_corr = cov/std_matrix

We have stored the new correlation matrix (derived from a covariance matrix) in the variable new_corr.

Let us check if we got it right by plotting the correlation matrix and juxtaposing it with the earlier one generated directly using the Pandas method corr().

plt.figure(figsize=(18,4))

plt.subplot(1,2,1)

sns.heatmap(correlation_mat, annot = True)

plt.title("Earlier correlation matrix (from Pandas)")

plt.xlabel("cell nucleus features")

plt.ylabel("cell nucleus features")

plt.subplot(1,2,2)

sns.heatmap(correlation_mat, annot = True)

plt.title("Newer correlation matrix (from Covariance mat)")

plt.xlabel("cell nucleus features")

plt.ylabel("cell nucleus features")

plt.show()

Output:

We can compare the two matrices and notice that they are identical.

Exporting the correlation matrix to an image

Plotting the correlation matrix in a Python script is not enough. We might want to save it for later use.
We can save the generated plot as an image file on disk using the plt.savefig() method.

correlation_mat = df_small.corr()

sns.heatmap(correlation_mat, annot = True)

plt.title("Correlation matrix of Breast Cancer data")

plt.xlabel("cell nucleus features")

plt.ylabel("cell nucleus features")

plt.savefig("breast_cancer_correlation.png")

After you run this code, you can see an image file with the name ‘breast_cancer_correlation.png’ in the same working directory.

Conclusion

In this tutorial, we learned what a correlation matrix is and how to generate them in Python. We began by focusing on the concept of a correlation matrix and the correlation coefficients.

Then we generated the correlation matrix as a NumPy array and then as a Pandas DataFrame. Next, we learned how to plot the correlation matrix and manipulate the plot labels, title, etc. We also discussed various properties used for interpreting the output correlation matrix.

We also saw how we could perform certain operations on the correlation matrix, such as sorting the matrix, finding negatively correlated pairs, finding strongly correlated pairs, etc.

Then we discussed how we could use a covariance matrix of the data and generate the correlation matrix from it by dividing it with the product of standard deviations of individual features.
Finally, we saw how we could save the generated plot as an image file.

July 10, 2020

Linux Mint 19.3 Linux Mint 20’ye nasıl yükseltilir?

Öncelikle şunu belirtelim: Linux Mint 19.3’ün hem 32 bit hem de 64 bit sürümleri Nisan 2023’e kadar desteklense de, Linux Mint 20 de dahil olmak üzere yeni Linux Mint sürümleri yalnızca 64 bit olarak kullanılabilecek. Bu nedenle, Linux Mint 20’ye yükseltmek için, Linux Mint 19.3’ün 64 bit sürümünü kullanıyor olmanız gerekiyor. hangi sürümü kullandığınızı anlamak için şu komutu çalıştırabilirsiniz: dpkg --print-architecture. Çıktı amd64 olarak dönerse, sistemi, Linux Mint 20’ye yükseltebilirsiniz. İ386 çıktısını alırsanız, 32 bit sürümünü kullandığınız anlamına gelir. Bu durumda yükseltme yapamazsınız ve Linux Mint 19.3 ile devam etmeniz gerekir. Linux Mint 20’ye yükseltmek için APT ve komut satırı deneyimine sahip olmanız gerekir. Şimdi çalışmaya başlayabiliriz. Öncelikle sisteminizde tüm güncellemelerin tam olarak yapılmış olması gerekir. Öncelikle Menü -> Yönetim -> Güncelleme Yöneticisi ile Güncelleme Yöneticisini açın. “Yenile” düğmesine basın. Yeni paketler çıkarsa, “Tümünü Seç” düğmesine basın ve ardından “Güncellemeleri Yükle” düğmesine basarak güncelleme işlemini gerçekleştirin. Yok, yeni paketler gelmezse, bu sisteminizin güncel olduğunu gösterir, devam edebilirsiniz.

Yükseltme sırasında bir sorun oluşursa, en son sistem anlık görüntüsünü geri yükleyerek zamanda geriye gidebilir ve tüm değişiklikleri geri alabilirsiniz. Bir sistem anlık görüntüsü oluşturmak için Timeshift’i “Menü -> Yönetim -> Timeshift” ile başlatıp, anlık görüntüler için bir hedef seçmek üzere sihirbazı izleyebilirsiniz. İlkin yükseltme aracını kurmanız gerekiyor. Bunun için terminale aşağıdaki kodu girin:

apt install mintupgrade

Şİmdi bir kontrol yapmamız gerekiyor. Bunun için terminale aşağıdaki kodu girin:

mintupgrade check

Ardından ekrandaki talimatları izleyin. Bu komut sistemi geçici olarak Linux Mint 20 depolarına yönlendirir ve yükseltmenin etkisini hesaplar. mintupgrade check komutuyla; yükseltmenin mümkün olup olmadığını ve varsa hangi paketlerin yükseltileceğini, yükleneceğini, kaldırılacağını ve saklanacağını öğrenrceksiniz. Artık paket yükseltmelerini indirmeye başlayabiliriz. Bunun için terminale aşağıdaki komutu girin:

mintupgrade download

Bu komutun aslında yükseltmenin kendisini gerçekleştirmez, yalnızca paketleri indirir. İndirme bittikten sonra yükseltmeleri uygulayabiliriz. Bu adım geri alınamaz. Bunu yaptıktan sonra, geri dönmenin tek yolu bir sistem anlık görüntüsünü geri yüklemektir. Yükseltmeleri uygulamak için terminale aşağıdaki komutu yazın:

mintupgrade upgrade

Bazı paketler artık Linux Mint 20’de mevcut değil veya Linux Mint 19.3 sürümünden daha düşük bir sürüme sahip. Düzgün çalışmalarını garanti etmek için indirgenmeleri gerekir. “Menü -> Yönetim -> Yazılım Kaynakları” ndan Yazılım Kaynakları aracını başlatın. “Bakım” sekmesini açın ve “Yabancı Paketleri Eski Sürüme Geç” seçeneğini tıklayın. Tüm yabancı paketleri seçin ve “Eski sürüme geçir” i tıklayın.

Şimdi de yabancı paketleri silmemiz gerekiyor. Bunun için “Menü -> Yönetim -> Yazılım Kaynakları” ndan Yazılım Kaynakları aracını başlatın. “Bakım” sekmesini açın ve “Yabancı Paketleri Kaldır” ı tıklayın. Kendiniz kurduğunuz paketler hariç (3. taraf kaynaklardan), tüm yabancı paketleri seçin ve “Kaldır” a tıklayın.

Yükseltme yapamıyorsanız, lütfen yeni bir kurulum yapın. Yükseltmelerle ilgili Clement Lefebvre’in yazdığı genel talimatları burada ve burada bulabilirsiniz.

Linux Mint 20 “Ulyana” Güncellemesi Nasıl Yapılır?

Linux Mint 19.3’ün 32-bit ve 64-bit versiyonları Nisan 2023’e kadar destekleniyor. Linux Mint 20’de sadece 64-bit sürüm destekleniyor. Eğer güncelleme yapmak istiyorsanız sisteminizin 64-bit olması gerekiyor. Sisteminizin 32-bit mi yoksa 64-bit mi olduğunu öğrenmek için aşağıdaki komutu terminalde çalıştırın. dpkg --print-architecture Komutu çalıştırdıktan sonra “amd64” yazısıyla

July 09, 2020

Openbox: Sağ Tık Menüye Menü Başlığı Ekleme

Openbox sağ tık menüsü, zevke göre, istenildiği gibi özelleştirilebilir.Bu menüyü görsel olarak güzelleştiren şeylerden biri de, güzel bir font seçilerek eklenecek olan menü başlığıdır.Gelin, Openbox sağ tık menümüze menü başlığı ekleyelim.

Bunun için ~/.config/openbox dizininde(eğer oraya kopyaladıysak) veya /etc/xdg/openbox dizininde bulunan menu.xml dosyamızı kullandığımız metin editörü yardımıyla açıyoruz.

menu.xml dosyamızdaki;

<menu id="root-menu" label="Openbox 3">

Satırını buluyoruz.Bu satırının altına;

<separator label="Openbox"/>

Satırını ekliyoruz.Eklediğimiz satırdaki “Openbox” yazısını istediğimiz gibi değiştirebiliriz.Bunları yaptıktan sonra dosyamızı kaydedip çıkıyoruz.Sonucu görmek için oturumu yenilemek veya oturumu yeniden başlatmak gerekebilir.

Menü başlığımızın yazı stilini değiştirmek için de ObConf’u açıp, soldaki Görünüm menüsünden, “Menü başlığı” altından istediğimiz yazı stilini seçmemiz yeterli olacaktır.

July 07, 2020

Openbox: Sağ Tık Menüye Simge Ekleme

Elbette Openbox’u sadeliğinden dolayı tercih ediyor olabilirsiniz.Ancak, bazı durumlarda, ufak tefek görsellikller de göze hoş gelmiyor değil.Bunlardan biri de sağ tık menüye simge eklemektir.Şimdi gelin nasıl yapabileceğimize bakalım

Openbox sağ tık menüye simge eklemek için, menu.xml dosyamıza küçük bir ekleme yapacağız.Bunun için menu.xml dosyamızı kullandığımız metin editörü yardımıyla açıyoruz.

sudo featherpad /home/kullanıcı_adı/.config/openbox/menu.xml

(Ben Featherpad kullanıyorum.Siz de hangi editörü kullanıyorsanız featherpad yerine onu yazabilirsiniz.Yine kullanıcı_adı yerine de kendi kullanıcı adınızı yazmayı unutmuyorsunuz.)

Açılan dosyamıza, menü girdilerine şu eklemeyi yapacağız.

icon="/home/kullanıcı_adı/.icons/tint2/simge_adı.svg"

(simge_adı yerine uygulamaların simgeleri için kullandığınız simgelerin adını yazmalısınız.)

Benim simgelerim ev dizinimde, /.icons/menu_icons olarak hazırladığım klasörde bulunuyor.Burada simgelerin bulunduğu dizin yoluna göre değişiklik yapmak gerekiyor.Yine Uçbirim için benim menu.xml dosyamdan örnek vereyim:

<item icon="/home/kullanıcı_adı/.icons/tint2/terminal.svg" label="Uçbirim">
<action name="Execute">
<execute>lxterminal</execute>
</action>
</item>

Resimde daha iyi görebilirsiniz:

Ve sonuç olarak sağ tık menümüz resimdeki gibi simgelerine kavuşmuş oluyor.

July 06, 2020

Openbox: Dinamik Menü ” openbox-menu”

“openbox-menu”, Openbox pencere yöneticisi için; yüklü uygulamaları listeleyip açmaya yarayan bir dinamik menüdür.Projeyle ilgili sayfalara buradan ve buradan ulaşılabilir.

“penbox-menu”, Ubuntu ve türevlerinde, Debian ve Arch Linux’ta depolardan kurulabilir.

sudo apt install openbox-menu

Kurulumdan sonra, menu.xml dosyasına yapacağımız küçük bir ekleme ile kullanılabilir hale gelecektir.Bunun için /etc/xdg/openbox dizin yolunda bulunan veya ~/.config/openbox dizin yolundaki(eğer dosyamızı bu dizine kopyaladıysak) menu.xml dosyamızı kullandığımız metin editörü yardımıyla açıyoruz.Dosyamızın uygun bir yerine aşağıdaki kodu yapıştırıyoruz:

<menu execute="/usr/bin/openbox-menu lxde-applications.menu" id="desktop-app-menu" label="Uygulamalar"/>

Burada Uygulamalar yerine tercih edeceğimiz şekilde isimlendirme yapabiliriz.

Dosyamızı kaydedip kapatıyoruz.Artık Openbox sağ tık menümüzde Uygulamalar adıyla, kurulu uygulamaları listeleyip açmamızı sağlayan bir dinamik menümüz var.Yeni kurduğumuz uygulamalar da bu menüye otomatik olarak eklenecektir.

 

 

July 03, 2020

USB Fon Müzikli Bildirim Dosyası

Bazı sistemler USB takıldığında bildirim vermez, bazıları ise USB'yi çıkarırken vermez.Bu durum bizlere bazı sorunlar yaşatabilir.Örneğin USB takılı olduğu halde USB bağlı değilse yanılmamıza ve yaptığımız işin boşa gitmesine neden olur.USB takarken ve çıkarırken bildirim vermesini ve bildirimle birlikte fon müzikli olmasını isterseniz hazırlamış olduğum alttaki bağlantıdan

July 02, 2020

Linux: Debian mı Ubuntu mu?Seçim Yapmadan Önce Bilinmesi Gerekenler

Linux Dünyası ile ilk tanışmam 2004 yılında Ubuntu ile olmuştu.Ardından Debian’la tanıştım.Aralarında çok gittim geldim.En sonunda benim tercihim Debian’dan yana oldu.Bunun kendime göre bir çok nedeni vardı.Ancak, Ubuntu’yu takibi de hiç bırakmadım; ta ki Unity arayüzüne geçene kadar.Unity ile birlikte Ubuntu ile yollarımız ayrıldı.
 
Ubuntu Unity’i bırakıp tekrar Gnome’a dönüş yaptı.Gel gör ki, Unity’den aldığı mirasla hala sol tarafta bir Dock bulunduırmaya ve masaüstünde gereksiz bir şekilde yer kaplamaya devam ediyor.Bundan hoşlanmadığımı ve bu arayüzden kurtulmanın yollarını buradaki ve buradaki yazılarımda anlatmıştım.(Seven seviyor elbette, saygı duyarım!)
 
Peki siz de hiç Debian ve Ubuntu ikileminde kaldınız mı?Linux dünyasına girdiğinizde muhakkakdağıtım seçme konusunda bazı tercihler yapmak durumunda kalırsınız.Ki burada, ilk ve en zorlu iş hangi dağıtımı kullanmak istediğinize karar vermektir.Her birinin avantajları ve dezavantajları olan seçim yapabileceğiniz o kadar çok seçenek var ki!
 

Mevcut en popüler dağıtımlardan ikisinin Ubuntu ve Debian olduğu su götürmez bir gerçektir.Her ikisi de çok kullanılır ve aralarından seçim yapmak biraz zordur.Bu yazı, bu konuda bir nebze de olsa kullanıcıya tercihlerinde yardımcı olmak amacıyla hazırlanmıştır.

Debian, Linux tabanlı en eski işletim sistemlerinden biridir. İlk versiyonu 1993’te piyasaya sürüldü.Debian sağlamlığı ve açık kaynağa bağlılığıyla bilinir.Ayrıca, tamamen topluluk güdümlü bir dağıtımdır.Yıllar boyunca, muhtemelen istikrarlı olması ve basitliği nedeniyle Debian’ı teel alan birçok popüler dağıtım ortaya çıkmıştır.

Ubuntu’ya gelirsek…Tartışmasız en popüler Linux tabanlı işletim sistemidir. Ubuntu’nun arkasında Canonical şirketi var, geliştirme ve destek şirket tarafından verilir.Burada ilginç olan gerçek ise, Ubuntu’nun da Debian’a dayanmasıdır.Bu yüzden Ubuntu ve Debian arasında birçok temel benzerlikler vardır.

Ubuntu ve Debian’ın her ikisi de birçok açıdan oldukça benzerlik gösterir. Her ikisi de manuel kurulum için APT paket yönetim sistemini ve DEB paketlerini kullanır. Her ikisi de GNOME olan aynı varsayılan masaüstü ortamına sahiptir.Bu, varsayılan görünüm ve izlenimin ve varsayılan/önceden yüklenmiş uygulamaların çoğunun benzer olacağı anlamına gelir.

1. Sürüm Döngüsü
 
Ubuntu ve Debian arasındaki en önemli fark, sürüm döngüsüdür. Çoğu cihazda sorun olmamasına rağmen, yeni donanım teknolojisini takip edip etmediğiniz veya tüm yazılımların en son sürümünü kullanmayı isteyip istemediğinizi bilmek bu konuda önem arz eder.
 
Debian için yayınlanan resmi bir sürüm döngüsü söz konusu değildir. Bununla birlikte, neredeyse iki yılda bir yeni bir sürüm sunar.Sürümlere Oyuncak Hikayesi(Toy Story) serisinden karakterlerin ismi verilmiştir. Örneğin, en son kararlı(Stable) sürümün adı Buster’dır.
 
Bu sürüm döngüsünü yavaş bulan kullanıcılar için, sık sık güncellenen bir sürüm olan Debian Testing de vardır(Şu anki adı Bullseye). Adı ve niteliğine rağmen, kullanıcılara göre, Debian Testing çoğu zaman oldukça kararlıdır ve yuvarlanan bir sürüm olarak kabul edilebilir.
 

Debian’ın “Kararsız(Unstable)” adlı bir sürümü daha vardır. Debian Unstable sık sık güncellenir ve en son özellikleri barındırır, bu da sistemin daha kırılgan olmasına neden olur.Bu sürüm, Debian’ın  sınanmasına yardımcı olan ve hata bildirmeye yardımcı olan kişiler için daha uygundur.Debian kararsız(Unstable) sürüm adın, Oyuncak Hikayesi(Toy Story)’de her zaman oyuncakları kıran çocuğun adı olan Sid’den almıştır.

2. Kararlılık

Kullanım amacınıza göre kararlılık sizin için gerekli olabilir. Bilmeniz gereken, Ubuntu ve Debian’ın kaarlılıkları arasında bazı farklılıklar bulunduğudur.

Ubuntu’nun sürüm döngüsü oldukça düzenli ve sürümler çoğunlukla gerçekten kararlıdır. Ara sıra karşılaşılan bazı sorunlar olsa da bu çok sık yaşanan bir durum değildir.Ubuntu, sistem bozulursa bile, kullanıcıların çoğunluğunu etkileyen bir durum oluşturmayacak bir yapıya sahip olduğundan, kişisel kullanım için oldukça uygundur.

Debian, kaya gibi sağlamlığı(kararlılığı) ile bilinir. En son yazılıma/sürücülere ihtiyaç duymuyorsanız ve sisteminizin gerçekten kararlı/sağlam olmasına iktiyaç duyuyorsanız, Debian(Kararlı/Stable Sürüm) en doğru tercih olacaktır.Bununla birlikte, nispeten daha güncel bir sürüm istiyorsanız da Debian Testing’i tercih edebilirsiniz.

3. Geliştirme

Bu nokta her kullanıcı için önem arz etmese de, yine de önemlidir. Her iki dağıtımın geliştirme yöntemleri ve ekipleri farklıdır.

Debian tamamen topluluk güdümlü bir dağıtımdır.Tüm dünyadaki programcılar ve geliştiriciler tarafından korunur ve geliştirilir.Bu gelişme biçimi sürekliliği sağlar. Geliştiricilerden biri proje üzerinde çalışmayı bırakmaya karar verirse, başka bir geliştirici projeyi devam ettirebilir.Bu da Debian’da merkezi bir kontrol mekanizması bulunmadığı anlamına gelir.

Debian’ın hem topluluk temelli hem de çok başarılı olması ve yaygın olarak kullanılması, niteliğiyle ilgilidir.

Ubuntu’nu bir şirket tarafından(Canonical) geliştirilmesinin birtakım avantajları vardır. Belirli bir serbest sürüm döngüsüne sahiptir; resmi bir destek hattına ve ayrıca özel yazılım/donanım desteğine sahiptir.Bu durum aynı zamanda bir dezavantajı da beraberinde getirebilir: Canonical, Ubuntu’nun aktif gelişimi için fişi her an çekmeye karar verebilir. Her ne kadar bu gerçekleşme olasılığı düşük bir ihtimal olsa da, böyle bir durumda bundan sadece aktif kullanıcılar değil, Ubuntu temelli  sürümler/dağıtımlar da etkilenecektir.(Linux Mint, Pop! _OS, Kubuntu, Xubuntu, vb.)Bu nedenle Linux Mint, Debian’a temelli, LMDE (Linux Mint Debian Edition) adlı paralel bir proje geliştirmektedir.

4. Yazılım Depoları

Ubuntu oldukça geniş bir yazılım deposuna sahiptir. Popülerliği nedeniyle, depolarında çok çeşitli yazılımlar barındırır.Ayrıca Ubuntu, sisteminize ek depolar eklemek için kullanılabilen PPA (Kişisel Paket Arşivi) özelliğine de sahiptir.

Bunun dışında Canonical, Linux dağıtımları için merkezi bir uygulama yayınlama ve yükleme platformu olarak görev yapacak olan Snapcraft üzerinde de çalışıyor. Tüm Linux dağıtımlarını desteklediğini söylese de, kullanıcılar tarafından şu an için buntu tabanlı dağıtımlarla iyi uyum sağladığı vurgulanmaktadır.

En önemlisi, Ubuntu depolarında tescilli yazılımlar da barındırmaktadır. Bu, kaynak kodlarını açık olarak yayınlamayan şirketlerin donanım sürücülerinden oluşur. Bu, sisteme donanım desteği ve işlevsellik avantajı sağlasa da, açık kaynak felsefesine inanan kullanıcılar bundan çok fazla hoşlanmayabiliyorlar.

Debian, depolarında yalnızca ücretsiz ve açık kaynaklı yazılımlara sahiptir. Bu çoğunlukla kullanıcılar için yeterli. Yalnızca tescilli sürücüleri olan donanımı kullanan kullanıcılar hariç, bu depolar iyi çalışır. İhtiyacınız olan şey buysa, tescilli yazılıma sahip depolar da ekleyebilirsiniz.

Debian, tıpkı Ubuntu gibi PPA’ları da destekler.

Depolarında açık kaynaklı bir yazılıma sahip olan Debian, kullanıcıları bu yönüyle de cezbeder.Nitekim bazı bazı kullanıcılar, yalnızca açık kaynağa bağlı bir kullanımı tercih edebiliyorlar.

5. Sistem Performansı

Debian ve Ubuntu’nun her ikisi de oldukça iyi performans gösterir ve donanım uyumluluğu konusunda çok fazla sıkıntı çıkarmazlar.Ubuntu, belirli ‘özellikleri’ vaat eden daha fazla yazılımla birlikte gelir.Diğer yandan Debian, varsayılan olarak yüklenmiş daha minimum yazılımlarla birlikte gelir.Bu da, Debian’ın btemel bir kurulumla daha iyi performans göstermesini sağlar.

Ubuntu’da da, sistemi daha hafif hale getirmek için yazılımlar kaldırılabilir elbette, ancak sistem için hangi paketlerin gerekli olduğunu her kullanıcı bilemeyebileceğinden sorun çıkma ve sistemin kararlılığının bozulması olasılığı yüksektir..

6. Oyun

Eğer bir oyuncuysanız, muhtemelen en son yazılım, sürücüler ve donanım desteği öncelikli ilgil alanınızda olacaktır.Debian potansiyel olarak bunu sağlayabilir ancak daha çok yazılımıların açık kaynak tarafına odaklandığından, her türlü yazılımın çalışmasını sağlaması bazı durumlarda sıkıntılı olabilir.

Buna karşın yukarıda belirtildiği gibi, Ubuntu, genellikle oyun için gerekli olan grafik sürücülerinden oluşan belirli tescilli paketleri de desteklemektedir.

7. Kurulum

Yükleme işlemi için Debian, Debian Installer’ı kullanır. Öte yandan, Ubuntu Ubiquity adlı bir yükleyici kullanır.

Her iki yükleyici de grafik arabirim sağlar, ancak Debian Installer Ubiquity ile karşılaştırıldığında bazı ek seçenekler sunar. Bu, gelişmiş kullanıcılar için bir avantaj olabilse de, yeni başlayanlar için oldukça zor da olabilir. Ancak, internette bolca kaynak bulunduğundan, bu çok ta endişe edilecek bir şey değildir.

8. Amaç

Her şeyden önce her iki dağıtımın da en çok ne için kullanıldığını da bilmelisiniz. Herhangi bir dağıtım, dağıtımı kullanan topluluğa göre gelişim gösterir.Bu nedenle bir seçim yapmadan bilinçli olmak önemli bir husustur.

Ubuntu çok amaçlı bir dağıtımdır.Çok geniş bir kullanıcı tabanına sahip olması, her yönden geliştirilmesini gerekli kılmaktadır.gerekiyordu.Bu nedenle Ubuntu’nun neredeyse her kullanım senaryosuna uyarlanabilir bir yapısı vardır.

Debian tüm kullanımlara uyacak şekilde de yapılandırılabilse de, istikrarı ve kararlılığı açısından oldukça popülerdir. Ubuntu’da olduğu gibi her şey kolayca yapılandırılamayabilir.Basitçe söylemek gerekirse, Debian, daha fazla emek ve uğraş ister.

9. Masaüstü Ortamları

Debian, için varsayılan masaüstü ortamı olarak GNOME sunsa da, diğer ortamları da depolarından yükleyebilirsiniz.

Ubuntu’nun ise, farklı masaüstü ortamları için farklı adlandırılmış dağıtımları vardır. Örneğin, KDE’li Ubuntu Kubuntu’dur. Xfce ile Ubuntu Xubuntu, vb.

Sonuç

Ubuntu ve Debian her ikisi de harika dağıtımlardır.Yüzeysel olarak benzerlikler gösterseler de, derinlliklerinde daha fazla farklılıklar barındırırlar.. Sonuç olarak hangisini kullanmak isteyeceğinizi, kişisel tercihleriniz ve gereksinimleriniz belirleyecektir.

 

June 27, 2020

Linux Mint 20 "Ulyana" XFCE Çıktı

Linux Mint ekibi Linux Mint 20 "Ulyana" XFCE sürümünü yayınladı. Linux Mint 20 LTS desteğine sahip olan sürüm 2025'e kadar desteklenecek. Güncellenmiş yazılımları ve yeni özellikleri içerisinde barındıran bu sürüm, kullanımınızı daha rahat hale getiriyor. Bu yeni sürümde birçok geliştirme mevcut. Bunların neler olduğunu şu adresten öğrenebilirsiniz. Linux Mint 20 "Ulyana" XFCE

Linux Mint 20 "Ulyana" MATE Çıktı

Linux Mint ekibi Linux Mint 20 "Ulyana" MATE sürümünü yayınladı. Linux Mint 20 LTS desteğine sahip olan sürüm 2025'e kadar desteklenecek. Güncellenmiş yazılımları ve yeni özellikleri içerisinde barındıran bu sürüm, kullanımınızı daha rahat hale getiriyor. Bu yeni sürümde birçok geliştirme mevcut. Bunların neler olduğunu şu adresten öğrenebilirsiniz. Linux Mint 20 "Ulyana" MATE Sistem

Linux Mint 20 “Ulyana” Cinnamon Çıktı

Linux Mint ekibi Linux Mint 20 "Ulyana" Cinnamon sürümünü yayınladı. Linux Mint 20 LTS desteğine sahip olan sürüm 2025'e kadar desteklenecek. Güncellenmiş yazılımları ve yeni özellikleri içerisinde barındıran bu sürüm, kullanımınızı daha rahat hale getiriyor. Bu yeni sürümde birçok geliştirme mevcut. Bunların neler olduğunu şu adresten öğrenebilirsiniz. Linux Mint 20 "Ulyana"

Linux: Ubuntu 20.04’te Dock’u Devre Dışı Bırakma ve Daha Fazla Ekran Alanı Kazanma

Untiy’den beri, sol taraftaki başlatıcı(Dock), Ubuntu masaüstünün kimliği haline geldi.Ubuntu GNOME’a geçiş yaptıktan sora da, sol taraftaki Dock benzer şekilde çatallanarak varlığını korudu.

Kendi adıma, hem görüntü hem de kullanışlılık olarak çok hoşlanmıyorum.Fazladan yer kaplaması da cabası…Tam tersini düşünen kullanıcılara da saygı duyduğumu belirterek, Ubuntu 20.04’te Dock’u kolayca devre dışı bırakabilirsiniz.(Ubuntu’nun bu görünümünden hoşlanmayanlar için, buradaki yazımızda Ubuntu’ya normal gnome oturumu yüklemeye değinmiştik.)

1-Ubuntu Dock’u Uzantılar Uygulamasıyla Devre Dışı Bırakma

Uzantılar uygulaması yüklü değil mi?O halde, henüz yüklemediyseniz, gnome-shell-extensions paketini yüklemeniz gerekiyor.Çünkü Uzantılar uygulaması bu paketin bir parçasıdır.

sudo apt install gnome-shell-extensions

(Ununtmayın!Bu, yalnızca Ubuntu 20.04 ve sonraki sürümlerinde bulunan GNOME 3.36 veya daha yüksek sürümler için geçerlidir.)

Uzantılar uygulamasını başlatın; Listelenen uzantıların altında Ubuntu Dock’u göreceksiniz.Dock’u devre dışı bırakmak için düğmeyi kapatmanız yeterlidir.

Değişikliğin hemen gerçekleştiğini ve Dock’un kaybolduğunu göreceksiniz.

Aynı şekilde, geri getirmek için de düğmeyi açmanız yeterlidir.

2-Ubuntu Dock’u Komut Satırı Üzerinden(Terminal) Devre Dışı Bırakma

Terminali kullanmayı seviyorsanız, Ubuntu Dock’u komut satırından da devre dışı bırakabilirsiniz.

Bir terminal açın.Terminalde, aşağıdaki komutla kullanılabilir tüm GNOME uzantılarını listeleyin:

gnome-extensions list

Bu size benzer bir çıktı gösterecektir:

Varsayılan Ubuntu Dock uzantısı ubuntu-dock@ubuntu.com‘dur.

Bu komutu kullanarak devre dışı bırakabilirsiniz:

gnome-extensions disable ubuntu-dock@ubuntu.com

Ekranda hiçbir mesaj görüntülenmeyecektir, ancak Dock’un sol taraftan kaybolduğunu göreceksiniz.

İsterseniz, yukarıdaki komutla tekrar etkinleştirebilirsiniz, ancak bu sefer elbette enable seçeneğiyle:

gnome-extensions enable ubuntu-dock@ubuntu.com

Touchpad tek tık ile nasıl açılır-kapanır?

Kendim masaüstü kullandığım için böyle bir şeye ihtiyaç duymadım, ancak ihtiyaç duyanlar için işe yarayacağını umuyorum. Touchpad tek tık ile nasıl açılır-kapanır işlemi Debian 10'da denenmiştir, Debian tabanlı diğer dağıtımlar için de geçerli olduğunu düşünüyorum. Tek tık ile Touchpad açma/kapama ihtiyacı duyuyorsanız bu işlemi deneyebilirsiniz. Önce uçbirime alttaki komutu girerek küçük bir

June 25, 2020

Linux Haber: Linux Mint 20 ‘Ulyana’ İndirmeye Sunuldu

Kod adı ‘Ulyana’ olan Linux Mint 20 artık indirmeye sunuldu.Artık popüler Ubuntu tabanlı masaüstü Linux işletim sisteminin en son kararlı sürümü olan Linux Mint 20’yi indirebilirsiniz.

Linux Mint 20, 25 Haziran 2020’de yayınlandı.Bu sürüm, bir uzun vadeli bir destek sürümüdür(LTS).Bu da, Linux Mint 20’nin 2025’e kadar destekleneceği anlamına geliyor.

Önceki sürümlerden farklı olarak, Linux Mint 20 sadece 64-bit mimarisi ile gelmektedir ve 32-bit sürüm yoktur.Bu da, 32-bit kullanan kullanıcılar sistemlerini Linux Mint 20’ye yükseltemeyecekler demektir.

Elbette 32-bit kullanmak isteyen yada 32-bit desteğe ihtiyaç duyan herkes Linux Mint 19.x serilerini kullanmaya devam edebilir. Bu sürümler de, önemli ve kritik uygulama güncellemeleriyle birlikte 2023 yılına kadar destekleneceklerinden, kullanıcın donanım yükseltme aşamasında bolca zamanı olacak.

Linum Mint 20 ‘Ulyana’ Cinnamon, Mate ve Xfce sürümlerini indirmek için bu indirme sayfasından yararlanabilirsiniz.

 

Feeds