Why your Git repository is suprisingly large?

Git stores everything. It is a version control tool after all. What is once committed will always be available for anyone to checkout. But how does git stores all versions of your files? Does it copy every version? No. It just detects changes and takes note of them. After all, adding a new function to your class is just inserting some lines into a text file. But this doesn’t always help you to save repository space.

If you’ve added a file then deleted it in the next commit, it doesn’t go away. It has to be stored somewhere to allow you to access it in the future if you wish. These kinds of commits might cause your repository to grow and make it uncomfortably large for cloning. “There must be a way to clean this mess!” I hear you say and there is! But first, we have to figure out why your git repository is unnecessarily large.

Continue reading

How to disable touchpad on Linux

Sometimes it feels like your hardware is not co-operating and trying to argue with you. Which can be really annoying. My touchpad is always detecting my palm while trying to use the keyboard and moves the cursor to an unknown location… So I would like to let you know the easy trick to disable and enable input devices on Linux.

If you want to disable a device which is connected or integrated with your computer on Linux you can check out xinput command. To view all xinput devices you can use the command “xinput list” the output of it on my desktop computer looks like this.

Continue reading

Linux Ethernet Sorunu – Kernel 3.16.0-38-generic

Ethernet_ConnectionSon zamanlarda başıma bela olmuş bir sorunu çözmüş bulunmaktayım. Yaşayan başka insanlar da vardır muhtemelen ve Türkçe kaynak bulmak neredeyse imkansız olduğu için “Çözdüm bari paylaşayım.” dedim. Kernel ile alakalı olduğu için aynı kernel versiyonunu kullanan çoğu Linux’de yaşama ihtimaliniz gayet yüksek. O yüzden sadece Ubuntu yada Linux Mint diye düşünmeyin.

Sorun

Sorun aslında hem ubuntu hem Linux Mint 17.2’de karşılaştığım bir sorun. İnternet bağlantısı sağlanamıyor. Ethernet kablosu bağlı olmasına rağmen bağlantı yok gibi bir uyarı veriyor. Kabloyu çıkarıp takınca düzelebiliyor. Bazen bunu 3-4 kere yapmam bazen de bilgisayarı baştan başlatmam gerekiyor. Sorun kernel’da gelen ve hali hazırda kullanımda olan driver ile ilgiliymiş. Anakartım hakkında kısaca bilgi vereyim. Muhtemelen aynı anakarta sahip olanlar bu sorunu yaşayacak.

description: Motherboard
product: GA-MA770T-UD3P
vendor: Gigabyte Technology Co., Ltd.

Geçiçi çözüm

Bağlantıyı sağlamak için kabloyu çıkart tak yapmak yerine masa başında terminali kullanarak ethernet modülünü tekrar tekrar kaldırıp ekleyebilirsiniz. Bu da işe yarıyor ama bazen 4-5 kere denemeniz gerekiyor. İlk başta bunu bir çözüm olarak kullanmak için bir bash script’i yazdım ama pek işe yaramadı. Belki sizde yarar denemek istersiniz diye buraya yapıştırıyorum.

#!/bin/bash
counter=0
while [ 1 ]
do
    sleep 5
    wget -q --tries=10 --timeout=20 --spider http://google.com
    if [[ $? -eq 0 ]]; then
            echo "Online, connection successful."
        break
    else
            echo "Offline ("$counter")"
        sudo rmmod r8169
        sudo modprobe r8169
        ((counter++))
    fi
done

Bende çok işe yaramadı ama elle sırasıyla aşağıdaki komutları girerek deneyebilirsiniz. Ben bunu otomatikleştirmeye çalıştım ama işe yaramadı. Üzerinde çalışmak lazım. Sorunu gören çözen varsa yorum atsın düzeltelim. Pek beceremedim o kısmı.

sudo rmmod r8169
sudo modprobe r8169

Birinci satır r8169 modülünü kernel’dan kaldırıyor. İkinci tekrar ekliyor. Zaten bu sırada GUI kullanıyorsanız bağlantının gözüktüğü kısımın yenilendiğini farkedersiniz.

Kalıcı Çözüm

Kalıcı çözüm ise yeni modülü indirip kurmak. Tabi bunu yapmadan önce eski modülünüzü kaldırmanız gerek. Buradan kendi kernel versiyonunuza uygun olanı indirin. Home klasörünüze atarsanız yapmanız gerekenler,

tar vjxf r8168-8.aaa.bb.tar.bz2 
cd r8168-8.aaa.bb
sudo ./autorun.sh

Birinci satır dosyayı tarball dan çıkarıyor. İkinici satırda yeni dizine giriyoruz. Üçüncü ise Realtek tarafından yazılmış scripti kullanarak yeni modülü yüklememizi sağlıyor. Zaten daha fazla açıklama da README dosyasında mevcut. Okuduğuma göre eski driver versiyonunu kullananlar da sorunlarını çözmüşler. Update etmek işe yaramazsa daha düşük bir versiyona downgrade edin. Yeni driver benim sorunumu çözdü. Umarım sizinde işinize yarar.

Creating ISO Files On Linux With dd From a DVD or Directory

Hello my fellow Linux users. I would like to show you a very useful thing that can save a lot of time while creating ISO files on Linux systems. Well as you know creating ISO files on Windows generally means you had to install extra software. As always, it is easier to do it on Linux. 🙂

Creating an ISO file from a DVD or CD

In order to achieve this we’ll be using dd while setting the input file as our cdrom from /dev

dd if=/dev/cdrom of=~/cdrom_image.iso

of is the output file, which means where you are going to export the file.

Creating an ISO file from a directory

You can also create ISO files from a directory with mkisofs as you can guess from the command below first part is the path of the ISO file which will be generated and the second part is the directory.

mkisofs -o /tmp/cd.iso /tmp/directory/

You can read more about dd and mkisofs from these hyperlinks.

Linux – Spotify kurulumu

spotify-logoSpotify her ne kadar reklamları ile canımızı sıkmakta bir numara da olsa, gayet güzel bir yazılım. Şu anda hali hazırda piyasada stable diyebileceğimiz bir linux versiyonu bulunmasa da beta versiyonunu indirip kullanmanızı tavsiye ederim. Browser üzerinden de müzik dinleyebiliyorsunuz ama desktop ile yarışamaz tabii ki. Ben şu anda Elementery OS kullanıyorum Ubuntu tabanlı bir işletim sistemi yani Ubuntu ve Ubuntu tabanlı işletim sistemlerini kullananlarda aynı şekilde kurulumu gerçekleştirebilir. Diğer distrolarda da tam olarak aynı olmasa da benzer şekilde kurulum yapılabilir.

Öncelikle Software & Updates penceremizi açıyoruz. Burada ikinci sekmedeki Other software sekmesine geçiyoruz. Sol attan ekle diyip aşağıdaki satırı açılan pencereye yapıştırıyoruz.

deb http://repository.spotify.com stable non-fre

Kullanıcı şifremizi isteyecek, girdikten sonra işlem tamamlanmış olacak. Buraya eklediğimiz için artık uygulamamız Update geldiği zaman otomatik diğer uygulamalar gibi güncellenecek. Daha sonra terminalimizi açıyoruz ve Spotify’ın resmi repo anahtarını giriyoruz. (Aşağıdakini yapıştırıp enter diyoruz.)

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 94558F59

Böylece key eklenmiş oldu bilgisayarımıza. Sıra geldi yazılımı kurmaya aşağıdaki son satırıda yapıtırdığınızda Spotfiy’ı sorunsuz bir şekilde bilgisayarınıza yüklemiş olacaksınız.

sudo apt-get update && sudo apt-get install spotify-client

Buda ekran görüntüsü, klavyedeki play,pause vb. tuşlar sorunsuz çalışıyor. Kenardaki şarkı ismi gibi bildirimlerin gözükmesinde de sıkıntı yok.

spotify_screenshot_linux

DÜZENLEME : İŞLER DEĞİŞTİ

Daha önce yazdığım bu anlatım sanırım Spotify’ın repo’sunun taşınması nedeniyle çalışmayabilir. Yeni komutlar aşağıdaki gibi.

# 1. Add the Spotify repository signing key to be able to verify downloaded packages
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys D2C19886

# 2. Add the Spotify repository
echo deb http://repository.spotify.com stable non-free | sudo tee /etc/apt/sources.list.d/spotify.list

# 3. Update list of available packages
sudo apt-get update

# 4. Install Spotify
sudo apt-get install spotify-client