Burada anlatılanlar benim küçük/büyük sorunlarımı çözerken izlediğim adımlardır. İlerde bu bilgilere kendim her yerden erişeyim diye, veya benzer sorunları yaşayan başkaları da erişebilsin diye burada biriktiriyorum. Bu adımları uygulamak, hata yapmamak ve doğabilecek herhangi bir hasar sizin kendi sorumluluğunuzdadır. Yazar(lar) veya yazılardaki bağlantıların sahipleri hiçbir şekilde oluşabilecek hata/hasarlardan dolayı sorumlu tutulamazlar.
26.04.2019
pureline
Daha önce PowerLine'ı denemiştim, ama amaca göre biraz aşırı doz izlenimi yarattığı için çok ilgimi çekmemişti. Pureline daha sade. Hoşuma gitti. Github sayfasında bazı şeyler anlatılmış, ama biraz daha açıklama fena olmaz herhalde.
Profil klasörümün altında github repo'sunun kopyasını yarattım:
# git clone https://github.com/chris-marsh/pureline
Bu şekilde ~/pureline klasörü yaratıldı, ve altına ilgili dosyalar indirildi. Bu klasörün altında bir de configs diye bir alt klasör var. Burada örnek bazı yapılandırmalar verilmiş. Bunlardan en fazla göstergesi (ya da modül) olan powerline_full_256col.conf dosyasını profilimin altına kopyaladım.
# cp ~/pureline/configs/powerline_full_256col.conf ~/.pureline.conf
Daha sonra da Github sayfasında önerilen, .bashrc ya da .profile dosyasına şu satırları eklemek:
if [ "$TERM" != "linux" ]; then
source ~/pureline/pureline ~/.pureline.conf
fi
Bundan sonra eğer açıksa terminali kapatıp yeniden açmak lazım. Şu şekilde bir terminal görünecektir:
Burada gözüken göstergeleri (modülleri) değiştirmek/düzenlemek için ~/.pureline.conf dosyasıın açmak gerek. Her göstergenin ~/pureline/pureline dosyası içinde bir fonksiyonu var. ~/.pureline.conf içinde ise şu bölüm altında kullanılan göstergeler belirleniyor:
# All modules are enabled. Uncomment/comment to enable/disable a module
declare -a PL_MODULES=(
# Module Background Foreground
'time_module MyLightGrey Black'
'battery_module MyBlue Black'
'user_module MyLime Black'
'ssh_module MyYellow Black'
'virtual_env_module MyBlue Black'
'path_module MyBlue Black'
'read_only_module MyRed White'
'background_jobs_module MyPurple White'
'git_module MyGreen Black'
'return_code_module MyRed White'
'newline_module'
'prompt_module MyDarkGrey White'
)
İlk sütun dosyadaki fonksiyon ismi. İkinci sütun göstegenin fon rengi, üçüncü sütun ise font rengi. Örneğin terminalde zamanı yazdığımız bölüm için fon rengi MyLightGrey, yazı rengi olarak da Black kullanılmış. Bu satırın baştan sona tek tırnak arasında yazıldığına dikkat!
İstenmeen modüller çıkartılıp, yerleri değiştirilebilir, hatta yenileri yazılabilir.
23.04.2019
git işleri
Git konusuna yabancıyım. Bu kısa giriş ilk başlayanlar için faydalı olabilir.
Elimizde bir proje var. Bunun üzerinde çalışıyoruz. Sürekli değişiklikler yapıyoruz. Yaptığımız değişikliklerin sürümlerini denetlemek istiyoruz. Hatta ortak çalışacak kişilerle birlikte kod paylaşımı yapabilmeyi, belki de açık kaynak kodlu projemizin başkalarının çalışmalarına taban olmasını umuyoruz. Bu amaçla git gibi bir sürüm kontrol sistemi kullanabiliriz.
Önce bir klasör oluşturup bunu git init ile "ilklendirelim". Sonrasına proje oluşurken bu klare yeni dosyalar da eklenecek. İşin bir noktasında uygun gördüğümüz dosyaları git add komutu ile hazırlık aşamasına (staging area) ekleyebiliriz. Bu aşamada henüz sürüm denetim sistemine dahil olan birşey yok. İstenen dosyalar eklendikten sonra hazırlık aşamasındaki dosyaların tümünü git commit komutu ile sürüm kontrol sistemine dahil edebiliriz. Bu adımdan sonra yerel bir depomuz (repository) oldu. Bu depoyu bir internet deposuyla eşzamanlı hale getirmemiz mümkün. Bunun için önce git remote add komutuyla önce bir uzak depo eklememiz, daha sonra da git push komutu ile yerel depomuzu uzaktakiyle eşzamanlı hale getirmemiz gerek.
İlk git yapılandırması için bir kullanıcı adı bir de eposta adresi gerek. İlk yapılandırma şöyle:
# git config --global user.name "kullanıcıadınız"
# git config --global user.email "eposta@adresiniz.com"
Mevcut ayarlarımızı ve ayarların nerden geldiğini görmek istersek:
# git config --list --show-origin
file:/home/metin/.gitconfig user.name=kullanıcıadınız
file:/home/metin/.gitconfig user.email=eposta@adresiniz.com
ya da tek tek bu bilgileri görmek için:
# git config user.name
kullanıcıadınız
olabilir.
İlk ayarlar yapıldı. Şimdi bir klasör yaratalım
# mkdir ~/Belgeler/git/proje1
# cd ~/Belgeler/git/proje1
ve bu klasörü git işlemleri için ayarlayalım (initialize). Bu işlem ile proje1 klasörünün içinde bir .git alt klasörü oluşturulur ve bu klasörün içinde projeye dahil edilen belgeler için sürüm denetlemesi (version control) yapılabilmesi mümkün olur:
# git init
Diyelim ki bu klasördeki tüm txt dosyalarını projeye dahil etmek istiyoruz. Bu durumda verilecek komut:
# git add *.txt
Yapılan değişklikler de git add ile kapsam içine alınmalı. Son olarak değişiklikleri işlemek için git commit kullanılır.
# git commit -m "tum txt dosyaları eklendi"
Burada -m ile son commit ile yapılan işlerin kısa bir özeti verilir, daha sonra geriye dönüp ne yapıldı diye bakılması durumuna karşı.
Buraya kadar yapılanların tümü yerel bilgisayar üzerindeydi. Şimdi oluşturulan verilerin örneğin Github'a senkronize edilmesine bakalım. Öncelikle Github üzerinde bir repository oluşturmamız gerek. Ben BuyukProje diye bir repository oluşturdum. Şimdi mevcut klasörü bu repository ile ilişkilendirmemiz gerek. Repository'nin adresin kopyalayıp aşağıdaki en son alana yapıştırıyorum.
# git remote add BuyukProje http://github.com/kullaniciadi/repository-adi.git
En son olarak commit edilen değişikliklerin git sunucusuna aktarılması için de
# git push -u BuyukProje master
komutu kullanılır. Bu aşamada Github kullanıcı adı ve şifresi istenebilir.
Yapılan işlerin bir kaydını görmek için
# git log
veya mevcut durumun bilgisini almak için
# git status
Hangi uzak sunucuları yapılandırdığımızı görmek için
# git remote
kullanılır. -v anahtarı ile URL ayrıntıları görüntülenebilir.
Öte yandan mevcut bir repository'nin kopyasını çıkarmak/indirmek istiyorsak şu komut kullanılır:
# git clone http://github.com/kullanıcı/proje3
Bu şekilde mevcut klasörün içinde proje3 alt klasörü oluşturulur ve içerik bu alt klasörün içinde yaratılır. Eğer sizin diskinizdeki alt klasör adının proje3'ten farklı birşey olmasını istiyorsak en sona bu klasör ismini yazabiliriz. Her iki durumda git init'te olduğu gibi bir .git alt klasörü daha yaratılarak sürüm denetimi için gerekli veriler burada depolanır.
Üzerinde değişiklik yapılan bir dosyanın tüm değişikliklerini geri alıp, en son repository'den alınan haline geri getirmek için ise
# git reset --hard
gibi birşey buldum, benim çok işime yaradı.
--
https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History
https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes
17.04.2019
Google'ın adil olmayan oyunları
Ben de bunları bir Google platformundan paylaşıyorum, bu da garip aslında. Belki de alternatif WordPress'e falan taşımalıyım.
En son Reddit'te rastladığım bir haber üzerine iyice tedirgin oldum. Firefox'un eski geliştirici kadrosundan olduğu söylenen Johnathan Nightingale'in Tweet'leri küçük bir deprem etkisi yaratmış durumda. Zdnet'teki haberde de doğrulanan bilgiler çok ciddi suçlamalar.
Nightingale'e göre yıllarca Google, kendi ürünü Google Chrome'u öne çıkarabilmek için Firefox ile oynayıp durmuş. Üstelik de bunu yaparken "Aa pardon, kusura bakmayın, yanlışlıkla oldu. Firefox ile aynı taraftayız elbette, sizi destekliyoruz" gibi yalan tepkiler ile göz doldurmuş.
Reddit'in r/firefox sub'ında Google ile çeşitli komplo senaryoları paylaşılıyor.
İnternet tarayıcısını seçme özgürlüğü internet üzerindeki en temel haklardan biri olmalı. Arabanı seçebilmek, telefonunu, yediğin yemeği seçebilmek gibi birşey bu. Ama gelinen durum şu ki, yeni kurulan bir bilgisayara ilk yüklenen yazılımlardan biri Google Chrome oluyor. Google garip bir şekilde hem teknoloji ile yakından ilgilenen kesimin, hem de bilgisayarı sadece sosyal ağlara bağlanmak için kullanan kişilerin ilgisini çekerek Chrome'u herkesin gözüne soka soka dünyanın en çok tercih edilen tarayıcısı yapmış durumda. Üstüne Microsoft'un Edge'in mevcut motorunu bırakarak Chromium tabanlı bir sürüme geçiyor olması, piyasadaki chromium tabanlı tarayıcıların oranını iyice artıracak.Standartları Google'ın güdümündeki Chrome/ium belirleyecek. Zaten yapılmaktaydı, Google'un sunduğu sayfalarda Firefox'un performansı bilerek ama yanlışlıkla oldu denilerek düşürülecek. Biz de "Bu Firefox da ne kötü oldu ya" deyip diğer tarafta geçmeyi mantıklı bulacağız.