14 Haziran 2015

Android emulator için KVM kullanmak

Android uygulama geliştirme sırasında test amacıyla android emulator kullanıyorsanız Linux sistemlerde eğer bilgisayarınız destekliyorsa KVM (Kernel Virtual Machine) kullanarak daha hızlı bir emulator çalışması sağlayabilirsiniz. Bunun için ilk önce bilgisayarınızı yeniden başlatıp BIOS ayarlarına girip VT ayarını enabled hale getirip bios ayarlarını kaydederek çıkış yapın. Ardından bilgisayarınız yeniden başladığında komut isteminde kvm-ok komutunu çalıştırın. Bilgisayarınızın KVM desteği olduğuna dair bir mesaj alırsanız kvm paketini kurabilirsiniz (paket ismi kvm-ipxe şeklinde geçiyor olabilir). Eğer kvm-ok komutu yok hatası alırsanız bu komutu çalıştırabilmek için hangi paketi kurmanız gerektiği belirtilir. KVM paketini başarıyla kurduktan sonra emulator çalıştırdığınızda hızdaki artışı fark edeceksiniz.

10 Haziran 2015

nodejs, npm ve cordova kurulum işlemleri

Bir süre önce bilgisayarıma yeniden Linux Mint işletim sistemi kurmuştum. Ardından yeniden cordova kurulumu yapmaya karar verdim. Aslında daha önce yapmayı düşünmüştüm ancak bugüne kadar erteledim.

Android sdk kurulumunu yaptıktan sonra cordova kurulumu için aşağıdaki adımları uyguladım. Android sdk kurulumu için https://developer.android.com/sdk/installing/index.html adresine başvurabilirsiniz.

-- node js kurulumu --
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -
sudo apt-get install -y nodejs

-- npm kurulumu --
sudo apt-get install npm

-- cordova kurulumu --
sudo npm install -g cordova

-- cordova komutunu sudo ile (root yetkisiyle) çalıştırma zorunluluğundan kurtulmak için cordova sahibini değiştiriyoruz --
sudo chown [kullanici] /usr/local/bin/cordova

-- /etc/profile.d/ dizininde oraclejdk.sh isminde bir dosya oluşturup içine şunları ekliyoruz --
export J2SDKDIR=/usr/lib/jvm/oracle_jdk8/
export J2REDIR=/usr/lib/jvm/oracle_jdk8/jre
export PATH=$PATH:/usr/lib/jvm/oracle_jdk8/bin:/usr/lib/jvm/oracle_jdk8/db/bin:/usr/lib/jvm/oracle_jdk8/jre/bin
export JAVA_HOME=/usr/lib/jvm/oracle_jdk8
export DERBY_HOME=/usr/lib/jvm/oracle_jdk8/db
Ayrıca aynı dosyaya android sdk yolu tanımlarını da ekleyebilirsiniz:
ANDROID_HOME=/home/eren/android-sdk-linux/
export ANDROID_HOME=$ANDROID_HOME
export PATH=$ANDROID_HOME/tools:$PATH
export PATH=$ANDROID_HOME/platform-tools:$PATH
Bu kodlarda jdk konumu olarak /usr/lib/jvm/oracle_jdk8/ ve android sdk konumu olarak /home/eren/android-sdk-linux/ kullandım. Siz bu dizinleri kendinize uygun şekilde düzeltiniz.

Yukarıdaki kodlar normalde sistem yeniden başlatıldığında çalışır ancak derhal uygulamak isterseniz şu komutu kullanabilirsiniz:
source /etc/profile.d/oraclejdk.sh 

Komutların doğru uygulandığını kontrol etmek için aşağıdaki komutlar ile test edebilirsiniz:
echo $ANDROID_HOME
echo $JAVA_HOME
echo $J2SDKDIR
...


NOT: Daha önce sistemdeki paket kurulumu ile openjdk kurarak projelerde openjdk kullanmıştım ancak denemek için android studio yazılımını kurduğumda kurulum esnasında openjdk için bazı görsel sorunlar yaratabileceği ve bu nedenle oracle jdk kurulması tavsiye edildiğini gördüm. Bu nedenle openjdk paketini kaldırıp oracle jdk kurulumu yaptım. Oracle JDK kurulumu için: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Ayrıca araştırma yaparken cordova yeni sürümünde bazı kodlarda değişikler olduğunu farkettim. Örneğin config.xml dosyasında bazı yeni öğeler gelmiş ve değişiklikler olmuş. Örneğin intent izin ayarları eklenmiş. Bununla ilgili şu yazıyı buldum: http://devgirl.org/2015/04/24/apache-cordova-newsflash/


4 Haziran 2015

Cordova kurulumunda hata

Cordova kurulumundan sonra cordova komutunu kullanmaya çalıştığınızda /usr/bin/env bulunamadı yada buna benzer bir hata alıyorsanız aşağıdaki komut ile çözümünü sağlayabilirsiniz:
sudo ln -s /usr/bin/nodejs /usr/bin/node
Bu komuttan sonra tekrar komut isteminde cordova komutunu çalıştırdığınızda eğer cordova komutunun kullanımıyla ilgili bir çıktı görüyorsanız artık cordova kullanabilirsiniz demektir.

1 Haziran 2015

Dizüstü bilgisayarda dahili klavyeyi yazılımsal olarak iptal etmek

Bir süre önce dizüstü bilgisayarıma (daha doğrusu klavye üzerine) çay dökülmüştü (Benimle uzun süreli birliktelik sonucu bana benzeyip çay sevmeye başlamış sanırım). Bu küçük kazadan sonra uzun süre (1 günlük touchpad arızası haricinde) herhangi bir sorun olmamıştı. Bugün ise bu nedenden kaynaklanmış olduğunu tahmin ettiğim yeni bir sorunla karşı karşıyaydım. Klavyedeki tuşlardan < düğmesi (hani o Z harfinin hemen yanındaki ve bir php kodlayıcının vazgeçilmez tuşlarından birisi olan düğme) nedense arada bir sanki üzerine basılmış gibi keyfi zamanlarda tetikleniyordu. Özellikle de kod yazarken bunun ne kadar sinir bozucu olabileceğini tahmin edersiniz. Bu sorundan kurtulmak için tuşun üzerindeki plastik parçayı söktüm, daha sonra sorunun geçmediğini görünce tuş yükseltici parça olarak görev yapan aksamı da söktüm. En sonunda yalnızca tuşun basılmasını sağlayan yumuşak tuş altlığı kaldığında sorundan kurtulduğumu ümit ettiğim kısa bir huzurlu kod yazım sürecinin ardından yeniden ekranda <<<< türü istenmeyen ilaveler görünce sorunun daha inatçı olduğunu anladım. Bunun ardından bilgisayarın kendi klavyesinden ümidi kesip harici usb klavye bağladım. Daha sonra tahmin edin ne oldu. Ekranda lüzumsuz <<< ilaveleri çıkmaya başladı dalga geçer gibi (olur da bu durumun ne kadar sinir bozucu olduğunu anlamak isterseniz -empati yapmak iyidir- kodlama yaparken başka birinden arada keyfi olarak o tuşa basmasını rica edebilirsiniz). Bunun üzerine bir şekilde dahili klavyeyi iptal etmem gerektiğine karar verdim (yetişmesi gereken projeler üzerinde çalışırken daha iyi bir çözüm yolu yoktur sanırım). Yaptığım araştırmalarda Linux sisteminde dahili klavyenin bazı ayarlar yapılarak iptal edilebileceğini öğrendim. Uyguladığım çözümü sizlerle de paylaşmak istedim. Önce komut istemini açın (Ctrl Alt T). Daha sonra aşağıdaki komutları girin:
sudo pluma /etc/default/grub
Açılan düzenleyicide şu satırı bulun:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
ve şununla değiştirin:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i8042.nokbd"

Benim bulduğum forumda bazı kaynakların i8042.nokbd=1 şeklinde yazdığını ancak bu şekilde çalıştığını yazmış. Ardından son olarak şu komutu çalıştırın:
sudo update-grub
Bu komut ile birlikte yapılan değişiklikler /boot/grub/grub.cfg dosyasına aktarılmış oluyor.

Bu işlemlerden sonra tahmin edersiniz ki (grub yazılımı işletim sistemini başlatıcı görevde olduğu için) bilgisayarı yeniden başlatmak gerekiyor. Daha sonra bilgisayarınızın dahili klavyesi çalışmazken harici klavyesinin çalışıyor olması gerekiyor (en azından bende öyle oldu). Ve en önemlisi artık sinir bozucu <<< ilavelerini görmüyorum. Her ne kadar bilgisayar çantamın ağırlığı ciddi şekilde artmış olsa da ( klavye, fare ve soğutucu altlıkla birlikte 15 inçlik bir bilgisayar düşünün) beni sinir eden ve hiç beklemediğim yerlerde belki nedenini günlerce bulamayacağım hatalarla uğraşmama neden olabilecek bir sorundan kurtulmanın verdiği hafifliğin yanında bu ağırlık önemsiz kalacaktır diye ümit ediyorum.


Kripto paralar hakkında

Kripto paralar, merkezi olmayan, şifrelenmiş ve dağıtılmış bir veritabanı olan blok zinciri teknolojisi kullanılarak oluşturulan dijital par...