2025-02-03

Manjaro'da gerek duyulmayan paketleri silmek

Manjaro linux'umdaki root partition'ım doldu. Biraz yer açmam lazım. En büyük yer kaplayan klasör de pacman cache'i.

pacman -Qdtq

komutu ile bir sürü pakete artık ihtiacımın olmadığnı görüyorum. Ama bir ara Linus Sebastian'ın başına geldiği gibi birşeyin benim başıma da gelmemesi için öncelikle bütün paketlerin gerçekten ihtiyaç duyulmadığını görmek, hatta şüphe ettiklerimi kapsam dışında bırakmak istiyorum. Öncelikle -Qdtq ile listelenen paket listesini bir dosyaya atıyorum.

pacman -Qdtq > gereksizler.txt

Belki ilk iş olarak bu listeye bakabilir, tereddüt ettiklerimi çıkarabilirim. Sonra bu listedeki her paketin -Qi ile listelenen bilgilerine bakmak istiyorum. Örneğin electron paketi gereksiz olarak listelenmiş. -Qi ile baktığımda şöyle bir çıkış alıyorum:

pacman -Qi electron
İsim                   : electron
Sürüm                  : 1:33-1
Açıklama               : Meta package providing the latest available stable Electron
                         build
Mimari                 : any
URL                    : https://electronjs.org
Lisanslar              : MIT
Gruplar                : Hiçbiri
Sağlananlar            : Hiçbiri
Bağımlılıkları         : electron33
Tercihli Bağımlılıklar : Hiçbiri
İhtiyaç Duyulanlar     : Hiçbiri
İsteğe Bağlı           : Hiçbiri
Çakışıyor              : Hiçbiri
Değiştirilenler        : Hiçbiri
Kurulum Boyutu         : 0,00 B
Paketçi                : Caleb Maclennan <alerque@archlinux.org>
İnşa Tarihi            : Sal 15 Eki 2024 23:10:40
Yükleme Tarihi         : Paz 01 Ara 2024 09:31:58
Yükleme Sebebi         : Başka bir paketin bağımlılığı olarak kurulmuş
Kurulum Betiği         : Hayır
Doğrulayan             : İmza

Burada İhityaç Duyulanlar alanı, bu pakete ihtiyaç duyan diğer paketleri, İsteğe Bağlı alanı ise çalışmak temel işlevleri için değil de bazı ek işlevler için bu pakete ihtiyaç duyabilecek paketleri listeliyor. Görüldüğü gibi electron için bu liste boş. Dolayısıyla silinebilir. Bu listedeki 92 paket için bunu elle yapmak istemiyorum. Otomatize etmek için

xargs -r pacman -Qi < gereksizler.txt | grep -E "İhtiyaç Duyulanlar|İsteğe Bağlı"

gibi bir komutla her paket için ekrana "İhtiyaç Duyulanlar" ve "İsteğe Bağlı" alanlarını yazdırıp gerçekten gereksiz olup olmadığını görmek istiyorum.

Bu adım gereksiz, evet. Ama emin olmak istedim. Nihayet, her paket için hem ihtiyaç duyulan hem de isteğe bağlı satırda "Hiçbiri" yazdığını görünce tümünü birden silme komutunu verdim.

sudo pacman -Rsn $(pacman -Qdtq)

2025-02-02

Dizüstü bilgisayarın bataryasının durumunu kontrol etme

Dizüstü bilgisayarların bataryaları zamanla ilk günkü kapasitelerini kaybederler. Bataryamızın fabrika çıkışındaki kapasitesi ile bugünkü kapasitesini karşılaştırmak istersek Windows'da powercfg komutunu kullanabiliriz.

powercfg /batteryreport

Bu bir htm formatında rapor dosyası üretecek, bulunduğumuz klasörde.  Tarayıcımızla açıp inceleyebiliriz. Bu dosyada "DESIGN CAPACITY" bölümünde gözüken bataryamızın fabrika çıkışındaki kapasitesi. "FULL CHARGE CAPACITY" bölümünde gözüken ise bugünkü kapasitesi.

Linux'ta ise bunu upower komutu ile yapabiliriz. Linux'ta bu iki aşamada oluyor. Önce upower ile mevcut cihazları listelemek gerek.

upower -e

Burada muhtemelen battery_BAT0 gibi bir şekilde isimlendirilen kaynağı kopyalayıp bir sonraki adımda upower'a -i parametresi ile birlikte yapıştırmak gerek:

upower -i /org/freedesktop/UPower/devices/battery_BAT0

Bu komutun çıktısında da energy-full-design bataryanın tasarlanan kapasitesini, energy-full ile bugünkü kapasitesini gösteriyor.

bugünkü kapasite / tasarlanan kapasite 'nin 0,8'den küçük olması bataryanın kapasitesinin ciddi düştüğü anlamına geliyor.

2025-02-01

Gnome'da batarya düşük ve kritik seviyelerini belirlemek

Gnome masaüstü kullanan bir bilgisayardayım. Varsayılan düşük batarya seviyesi %20. Yani bu seviyeden sonra düşük güç harcama kipi etkinleştiriliyor. Kritik batarya seviyesi %5 ve askıya alma seviyesi de %2. Batarya yeniyken sorun yok ama batarya bir süre (~2 yıl?) kullanıldıktan sonra bu seviyeleri değiştirmek gerekebilir. Benim bilgisayarımda seviye %10'a geldikten sonra çok hızlı bir şekilde %2'ye düşüyor ve askıya alma işlemi gerçekleşiyor. Bu sebeple bu seviyeleri biraz yükseltmek gerek. Ama grafik arayüzde bunu değiştirecek bir yer bulamadım. Şu sayfada bulduğum bilgi işimi yarar. Önce uygun bir editör ile /etc/UPower/UPower.conf dosyasını (sudo ile) açıp şu satırlara geledim:

PercentageLow=10.0
PercentageCritical=5.0
PercentageAction=2.0

Bu satırları aşağıdaki gibi değiştirdim.

PercentageLow=30.0
PercentageCritical=10.0
PercentageAction=5.0

Sonra da upower hizmetini tekrar başlattım.

sudo systemctl restart upower.service

2025-01-20

uBlock Origin Lite

Bu geçişi kaçırmışım. Bir ara Google'ın Chrome tarayıcısının eklentileri için oluşturduğu Manifest v3 vardı. uBlock Origin'in v3 uyumlu olmadığından bahsediliyordu ve Chromium tabanlı tarayıcılarda artık güvenilir bir reklam engelleyicinin kalmayacağı düşünülüyordu. Bu dönemde uBlock Origin'in v3'e uyumlu sürümü Lite çıkmış. Chrome Web Mağazası'nda artık uBlock Origin Lite var.

İkinci sırada gözüken uBlock, Raymond Hill'in geliştirdiği eklenti değil.

Madem ortada bir "Lite" sürüm var, merak ettim neleri yapabiliyor, neleri yapamıyordur. Benimle birlikte merak edenler de varmış. Örneğin ssg'nin ekşi sözlük'teki 28.09.2022 tarihli entry'si:

Temel olarak olay bundan ibaret. Firefox'ta hala manifest v2 uyumlu tam sürüm bir uBlock origin kullanılmaya devam ediyor. Ama Chrome Web Store'da artık bu yok, onun yerine v3 uyumlusu var. Daha kısıtlı özellikleri var.

  • Youtube reklamları artık engellenmiyor.
  • Filtreler otomatik olarak güncellenmiyor, sadece yeni sürüm çıktığında o yüklenirken güncelleniyor.
  • Bazı durumlarda regex tabanlı filtrelemeler çalışmıyor.

Ayrıntılar için aşağıdaki bağlantılara bakılabilir. Ama ilk bağlantıda da dediği gibi, uBlock en iyi Firefox'ta çalışıyor.



---

https://github.com/gorhill/uBlock/wiki/uBlock-Origin-works-best-on-Firefox
https://github.com/uBlockOrigin/uBOL-home/wiki/Frequently-asked-questions-(FAQ)
https://github.com/uBlockOrigin/uBlock-issues/issues/338#issuecomment-1332300191
https://github.com/uBlockOrigin/uBlock-issues/issues/338#issuecomment-1507539114
https://www.aboutcookies.org.uk/ad-blockers/ublock-review

2025-01-11

Hafta numaraları

Türkiye'de çok kullandığımız birşey olmasa da yılın içinde kaçıncı hafta olduğumuz bilgisi bazen faydalı olabiliyor. Powershell'de bu işi doğrudan Get-Date'i formatlayarak yapabiliriz:

Get-Date -UFormat %V

İlk haftanın hangisi olacağı ölçütü var. Bazı kültürlerde yılın ilk haftası olarak ilk tam hafta (FirstFullWeek), diğerlerinde yılın ilk gününün olduğu hafta (FirstDay) ötekilerde ise ilk 4 veya daha günlük hafta (FirstFourDayWeek) olarak kabul edilir [1].

Türkçe Windows'da bunu öğrenmenin yolu:

$kultur = Get-Culture
$kultur.DateTimeFormat.CalendarWeekRule

FirstDay

Yani yılın ilk gününün olduğu hafta bizde yılın ilk haftası kabul ediliyor. 1 Ocak Pazar bile olsa ertesi gün 2 Ocak bizim için yılın ikinci haftası. Değiştirmek mi istiyoruz? Olur [2, 3]:

$kulturBilgisi = [System.Globalization.CultureInfo]::InvariantCulture
$takvim = $kulturBilgisi.calendar
$takvimYilinIlkHaftasi = [System.Globalization.CalendarWeekRule]::FirstFourDayWeek
$haftaninIlkGunu = [System.DayOfWeek]::Sunday
$suAn = Get-Date
$haftaNo = $takvim.GetWeekOfYear($suAn, $takvimYilinIlkHaftasi, $haftaninIlkGunu)
"ISO 8601 standardına göre hafta numarası: $weekNumber"

Bu satırlar da yılın ilk haftasının en az 4 günü olan bir hafta olması ve haftanın ilk günün Pazar olması kuralına göre hesaplar.

Eski günlerden kalma güzel bir çalışma da Scripting Guy'a ait.

2025-11-03 Ek: Farkettim ki bu yöntem pazartesi ve salı günleri için farklı hafta numaraları dönüyor. Doğru hesaplamak için şu yöntem kullanılabilir.

2025-01-10

Security Identifer (SID) ve kullanıcı adı ilişkilendirme

Bir kullanıcı hesabından SID'yi bulmak için yerel hesaplarda

Get-LocalUser -Name metin | Format-List Name, SID

ya da tam tersi yönde SID'den sorgualama yapmak için ise

Get-LocalUser -SID "S-1-5..." | Format-List Name, SID

Active Directory ortamında ise (dikkat, buradaki Identity aslında kullanıcı adı)

Get-ADUser -Identity "metin" | Format-List SamAccountName, SID

veya tam tersi yönde SID'den kullanıcı isim sorgu için

Get-ADUser -Identity "S-1-5-..." | Format-List SamAccountName, SID