bash: sort İle Bir Dizindeki En Yüksek Boyutlu Dosyaları Bulma

Aşağıdaki komut ile mevcut dizindeki dosyalardan en yüksek boyutlu olanların ilk beş tanesini getirir:

$ ls -al | sort -nr -k 5 | head -n5

-rw-rw-r-- 1 erman erman 32435303 Dec 11 10:08 selenium-server-standalone-2.25.0.jar
-rw------- 1 erman erman 60180 Dec 29 09:56 .ICEauthority
-rw------- 1 erman erman 41579 Dec 28 17:39 .bash_history
-rw------- 1 erman erman 37772 Dec 29 11:03 .viminfo
-rw------- 1 erman erman 17466 Dec 28 17:39 .xsession-errors.old

Açıklama:

  • sort -nr -k 5: ls’den gelen listenin 5. sütununu(-k 5) referans alarak sayısal(-n) sıralama ve azalan(-r) düzende sıralar.
  • head -n5: sıralanmış listenin ilk 5 tanesini getirir.

PHP: Anonim Fonksiyonlarda Ebeveyn Kapsamındaki Değişkenleri Kullanmak

PHP 5.3.0 ile gelen anonim fonksiyonlarda ebeveyn kapsamındaki (parent scope) değişkenleri kullanmak isteyebiliriz. Bunun için use anahtar kelimesi kullanılır.

Syntax:

function() use ($variable)

Örnek:

<?php

// İki sayıyı toplayan bir fonk.
function add($number1,$number2)
{
	// MyMathLibrary, matematiksel fonksiyonlar içeren bir sınıf olduğunu varsayalım.
	$obj=new MyMathLibrary();

	// Anonim fonksiyon.
	$total=function($number1,$number2) use ($obj){

		return $obj->doSomething($number1+$number2);

	}

	return $total;
}

$result=add(15,25);

?>

Chrome eklentileri: Hangi Web Sitelerinde Ne Kadar Vakit Geçiriyorsunuz?

Benim gibi hangi web sitesinde ne kadar vakit geçirdiğinizi takip etmek isteyebilirsiniz. Bununla ilgili Chrome tarayıcısı eklentilerini araştırdım ve 4 tane buldum.

 

1) timeStats (benim seçimim)

timeStatsSüper zengin ve kişiselleştirilebilir bir eklentidir. Bilgileri istatiksel olarak grafiğe dökülmüş şekilde göstermektedir. Eklenti simgesine tıklandığında çıkan popup’da 6 çeşit istatistik grafiğini görebiliyorsunuz. Çoğu istatistik bilgileri tarih bazlı süzerek de görebiliyorunuz.

En çok sevdiğim özelliği web sitelerini kategorize ederek bu kategorilere göre istatistik bilgilerini görebiliyorsunuz.

Ayrıca sizin en meşgul olduğunuz günleri de çıkartabiliyor.

Ve en bomba özelliği kayıtlar CSV formatında dışarıya aktarılabiliyor.

Önemli özellikleri:

  • Dışarıya aktarma özelliği
  • Bir çok özelliği ayarlanabilir
  • Kayıtı tutulmuş sitenin kaydı silinebiliyor
  • Siteleri kategorize etme özelliği

Eklenti sayfasıhttps://chrome.google.com/webstore/detail/ejifodhjoeeenihgfpjijjmpomaphmah

 

2) Time Counter

İkinci olarak en çok beğendiğim eklentidir. Kayıtları direk grafik olarak göstermektedir.timeCounter

Özellikleri:

  • Grafiksel olarak gösteriliyor
  • Kayıtları günlük ve toplam olarak
  • Ayar sayfası mevcut

Eklenti sayfasıhttps://chrome.google.com/webstore/detail/clpklndnggegmgdacfkliopbpnelbogm

 

3) Web Time Tracker

Fazla özelliği olmayan basit bir eklentidir. En güzel yanı gezilen web sitelerin her sayfası için kayıt tutabiliyor.webTimeTracker

Önemli özellikleri:

  • Web sitelerin her bir sayfası için kayıt tutabiliyor

Önemli eksikleri:

  • İstatistikleri grafik olarak göstermiyor

Eklenti sayfasıhttps://chrome.google.com/webstore/detail/eapcgmjeoeajojpnedbjhgnfbpikcmjn

 

4) Time Tracker

Oldukça basit bir eklentidir. Bilgileri basit bir tablo şeklinde gösteriyor.timeTracker

Önemli özellikleri:

  • Alan adlarının her bir alt alan adları için ayrı kayıt tutabiliyor

Önemli eksikleri:

  • Yeni açılan, bir web sitesi görüntülenmeyen sekmeyi de kayıt olarak tutuyor (chrome://newtab olarak)
  • Kayıt tarihi yok
  • İstatistikleri grafik olarak göstermiyor

Eklenti sayfası: https://chrome.google.com/webstore/detail/mokmnbikneoaenmckfmgjgjimphfojkd

bash: Bir Dizindeki Farklı Dosya Uzantılarının Sayısını Bulma

find /home/erman/Downloads/ -type f -name "*.*" | awk -F . '{print $NF}' | sort | uniq | wc -l

Açıklama:

  • find /home/erman/Downloads -type f -name "*.*": ilgili dizinde *.* biçimli dosyaları bulur.
  • awk -F . '{print $NF}': kendisine girdi olarak verilen dosyaların uzantılarını alır.
  • sort: uzantıları sıralar.
  • uniq: aynı uzantıdan birden fazla varsa onları tekil yapar.
  • wc -l: uzantıların sayısını bulur

Shell Komutu İle Belli Dosyalar Hariç Silme İşlemi

Bir dizindeki belirli dosyalar hariç silme işlemi yapmak için aşağıdaki rm komutu aşağıdaki gibi kullanılabilir:

rm !(file1)

Yukarıdaki komut ile  mevcut dizindeki “file1” isimli dosya hariç tüm dosyalar silinir.

Örnekler:

Örnek-1:

# Yeni boş dosyalar oluştur.
erman@opsy:~/shell_playground$ touch f1 f2 f3 f20 f30
erman@opsy:~/shell_playground$ ls
f1 f2 f20 f3 f30
# Dosya adı f*0 biçiminde olan dosyalar hariç diğer dosyaları sil.
erman@opsy:~/shell_playground$ rm !(f*0)
erman@opsy:~/shell_playground$ ls
f20 f30

Örnek-2:

erman@opsy:~/shell_playground$ touch f1.php f2.php f3.php f10.htm f11.htm
erman@opsy:~/shell_playground$ ls
f10.htm f11.htm f1.php f2.php f3.php
# php uzantılı dosyalar hariç tüm dosyaları sil.
erman@opsy:~/shell_playground$ rm !(*.php)
erman@opsy:~/shell_playground$ ls
f1.php f2.php f3.php

Selenium Server Kurulumu

Selenium Server Rc Php’de functional testler yapmak için kullanılan araçtır. Bu yazıda bu aracın nasıl kurulacağı ve nasıl çalıştırılacağı anlatılacaktır.

Gereksinimler:

  • Bu aracı çalıştırmak için Java edinmelisiniz.

Yükleme:

Selenium Server şu adresten inidirilmelidir. jar uzantılı olan dosya. (selenium-server-standalone-2.25.0.jar gibi)

Çalıştırma:

Aşağıdaki komut verilerek çalıştırılır:

sudo java -jar selenium-server-standalone-2.25.0.jar

Eğer başarılı bir şekilde çalışmış ise aşağıdakine benzer çıktılar görülmeli:

Dec 19, 2012 1:30:35 AM org.openqa.grid.selenium.GridLauncher main
INFO: Launching a standalone server
01:30:40.858 INFO - Java: Sun Microsystems Inc. 20.0-b12
01:30:40.859 INFO - OS: Linux 3.2.0-34-generic amd64
01:30:40.916 INFO - v2.25.0, with Core v2.25.0. Built from revision 17482
01:30:41.241 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
01:30:41.242 INFO - Version Jetty/5.1.x
01:30:41.243 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]
01:30:41.243 INFO - Started HttpContext[/selenium-server,/selenium-server]
01:30:41.244 INFO - Started HttpContext[/,/]
01:30:41.318 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@ac980c9
01:30:41.318 INFO - Started HttpContext[/wd,/wd]
01:30:41.332 INFO - Started SocketListener on 0.0.0.0:4444
01:30:41.333 INFO - Started org.openqa.jetty.jetty.Server@48d6c16c

PHPUnit Kurulumu

Bu yazıda Php’de unit testler yapabilmek için pear yükleyicisi ile PHPUnit’in nasıl kurulacağını anlatacağım.

Öncelikle php’nin pear paketi kurulu değil ise şu şekilde kurulmalı:

sudo apt-get install php-pear

Eğer pear paketi yüklü ise aşağıdaki komutlar çalıştırılmalı:

sudo apt-get upgrade pear
sudo pear update-channels
sudo pear upgrade-all

Sıra geldi pear ile PHPUnit’i kurmaya:

sudo pear config-set auto_discover 1
sudo pear install pear.phpunit.de/PHPUnit

Şimdi PHPUnit’in doğru çalıştığını test etmek için aşağıdaki komutu çalıştırıyoruz:

phpunit --version

PHPUnit 3.7.10 by Sebastian Bergmann.

Son olarak da PHPUnit’e Selenium RC entegrasyonu için aşağıdaki paketi kuruyoruz:

sudo pear install pear.phpunit.de/PHPUnit_Selenium

Detaylı bilgi için:

Bu yazının devamı niteliğinde yazılacak yazılar:

  • Selenium sunucusu kurulumu
  • Yii Framework ile unit ve functional testler

Svn İpuçları (svn tips)

Commit’de değişen dosyaları listeleme

$ svn log --verbose -r 42

Özyinelemeli dosya/dizin ekleme

$ svn add * --force

svn branch alma

$ svn copy https://1.1.1.1/svn/gui/trunk https://1.1.1.1/svn/gui/branches/GUI_RELEASE_1_0 -m "gui release 1.0 branch"

svn tag alma

$ svn copy https://1.1.1.1/svn/gui/trunk https://1.1.1.1/svn/gui/tags/GUI_RELEASE_1_0 -m "gui release 1.0 tag"

“svn: File ‘file1.php’ has inconsistent newlines – svn: Inconsistent line ending style” hatasını çözme

Bu hata, farklı OS’deki yeni satır meta-karakterlerin kendi OS’nizde algınanamamasından kaynaklanmaktadır. (mesela bendeki durum, ilgili dosya Win’de kodlanmış ve satır sonu \r\n kullanılıyor fakat ben Linux kullandığım için burada da sadece \n kullanıldığı için problem çıkartıyor). Çözüm için:

1. çözüm

svn propdel svn:eol-style file1.php

2. çözüm

  1. Sorun çıkaran dosyayı şu şekilde silin: svn –force delete file1.php
  2. Dosya içindeki \r’leri silin ve sonra svn add file1.php

Mevcut bir repo’dan yenisine geçme

$ svn switch --relocate https://1.1.1/svn/gui/trunk/panel https://2.2.2.2/svn/gui/trunk/panel

Projeyi .svn dosyaları olmadan alma

$ svn export --username user1 https://1.1.1.1/svn/gui/trunk/panel/ /var/www/panel/

Svn’den tek dosya alma

$ svn export --username user1 https://1.1.1.1/svn/gui/trunk/panel/index.php

How to Set Up Environment to Develop Android Apps

Do the followings in order:

1) Install Java Development Kit (JDK)
– http://www.oracle.com/technetwork/java/javase/downloads/index.html

2) Install Eclipse IDE
– http://www.eclipse.org/downloads/

3) Install Android Software Development Kit (SDK)
– http://developer.android.com/sdk/index.html

4) Add Android Development Tools (ADT) in Eclipse
– Help > Install new software’.
– ‘Work with’, enter https://dl-ssl.google.com/android/eclipse.
– Check ‘Development tools’ and click ‘Next’.
– Select ‘Android DDMS’ and ‘Android Development Tools’. Click ‘Next’.
– Accept the terms and restart.

5) Point ADT plugin to where you extracted the Android SDK
– ‘Window > Preferences > Android’.
– Next to ‘SDK location’ click ‘Browse’ and locate the folder with the SDK.
– Click ‘Apply’ and ‘OK’.

6) Get Android platform
– Choose ‘Window > Android SDK and AVD Manager’ to open it.
– Select ‘Available packages’ and tick the box next to ‘https://dl-ssl.google.com/android/repository/repository.xml’.
– Tick what you want.
– Install (tick) the last version of the Android Platform.

7) Set up Android Virtual Device (AVD)
– Choose ‘Window > Android SDK and AVD manager’ and select ‘Virtual devices’.
– Click ‘New’ and provide a name for your new device. Select the Android platform that you want to use as the target. – Click ‘Create AVD’.

 

Source: http://www.techradar.com/news/phone-and-communications/mobile-phones/how-to-build-an-android-app-1046599