macOS Maven Kurulumu

Merhabalar, macOS sisteme geçişimle birlikte üzerinde çalıştığım projelerin ortam kurulumlarında yaşadığım deneyimleri sizlerle paylaşacağım.

macOS için manuel olarak Maven kurulumunu gerçekleştirmek isterseniz:

  1. Öncelikle terminalden ‘mvn –version’ yazarak Maven kurulumu sağlanmış mı kontrolünü sağlıyoruz. Komutun bulunmadığına dair hata alınmasını bekliyoruz.
  2. Maven’ın kendi sitesinden (https://maven.apache.org/download.cgi) güncel Maven sürümünü indiriyoruz.
  3. İndirilen sıkıştırılmış dosyayı herhangi bir konuma çıkartıyoruz.
  4. Ardından Terminal’e geri dönüp:
    sudo mv /Users/[kullaniciadiniz]/apache-maven-3.5.4/ /Users/[kullaniciadiniz]


    yazarak üst dizine taşımış olduk.

  5. Terminal’den sırasıyla:
    export M2_HOME=/Users/[kullaniciadiniz]/apache-maven-3.5.4/
    export PATH=$PATH:/Users/[kullaniciadiniz]/apache-maven-3.5.4/bin

    komutlarını çalıştırarak sistem değişkenlerimize Path’leri atamış olduk.

  6. Ardından tekrar ‘mvn –version’ yazarak Maven sürüm bilgilerinin geldiğini görüyoruz. Yaptığımız işlemler sadece açık olan terminal için geçerli oldu. Bunu kalıcı olarak yapılması için bash_profile oluşturup içine yazmamız gerekmektedir. Profili oluşturmak için:
    touch .bash_profile

    komutunu çalıştırırız.

  7. Çalıştırılan komutla birlikte gizli klasör şeklinde profil dosyamız oluşmuş oldu
    defaults write com.apple.finder AppleShowAllFiles TRUE

    komutunu çalıştırarak gizli dosyaları görünür hale getirdik.

  8. Oluşturduğumuz profilin içerisine girerek öncesinde yaptığımız sistem değişken ayarlarını yazıp kaydediyoruz.

Tüm işlemler bu kadar, takıldığınız bir yer olursa yorum olarak bahsedebilirsiniz.

Android Studio Kullanımda Olmayan Dosyaların Silinmesi

Merhabalar, Android Studio güncellemeler sonrası eski sürümlere ait dosyaları silme işlemi gerçekleştirmediği için harddisk üzerinde fazlaca yer kaplamaktadır. Bu yazımda Android Studio’nun kullanımda olmayan dosyalarını bulup, harddisk üzerinde fazla yer kaplamasının önüne geçeceğiz.

Eski Android Studio sürümünüze ait ayar dosyalarınız silin:

C:\Users\[kullanıcı adı]\ klasörü altında kullanmadığınız config klasörlerini silin.

Kullanımda olmayan Gradle sürümlerini kaldırın:

C:\Users\[kullanıcı adı]\.gradle\wrapper\ klasörü altında güncel olmayan Gradle klasörlerini silin.

Emülatörün geçici dosyalarını temizleyin:

C:\Users\[kullanıcı adı]\AppData\Local\Temp\AndroidEmulator konumunda bulunan emülatörün geçici dosyalarını temizlemeyi deneyebilirsiniz.

Kullanımda olmayan SDK’leri kaldırın:

Android Studio’dan SDK Manager’a erişin ve kullanmayacağınız SDK’lerin başındaki tik işaretini kaldırarak silin.

Android Studio “Building Gradle project info” Takılma Hatası

Merhabalar, güncellemeler sonrası Android Studio’da proje açarken “Building ‘projeadi’ Gradle project info‘ uyarısının ekranda uzun süre kaldığını görebilirsiniz. Bu sırada Gradle’ın uygun sürümünü indirmektedir, gerekli Gradle sürümünü manuel indirip kurmak size zaman kazandıracaktır.

Manuel olarak kurmak isterseniz:

  1. Gradle’ın kendi sitesine tarayıcı üzerinden erişin. (http://services.gradle.org/distributions/)
  2. Gradle sürümünüzü listeden bulup sonu “…-all.zip” olan dosyayı indirin. (Örnek olarak: gradle-4.1-all.zip)
    Eğer Gradle sürümünüzü bilmiyorsanız: “C:\Users\[kullanıcı adı]\.gradle\wrapper\dists” klasörüne erişin gözüken son sürüm sizin güncel Gradle sürümünüzdür.
  3. İndirdiğiniz RAR dosyasını:
    “C:\Users\[kullanıcı adı]\.gradle\wrapper\dists\gradle-4.1-all\” içerisinde sistem tarafından Random adla oluşturulan klasörün altına ZIP halinde yapıştırın.
    Kendi kurulumumdaki konumu örnek verirsem:
    “C:\Users\[kullanıcı adı]\.gradle\wrapper\dists\gradle-4.1-all\bzyivzo6n839fup2jbap0tjew\” şeklindedir. Güncel sürüm ve içerisinde oluşan klasörün adı farklılık gösterebilir fakat yapılan işlem aynıdır.
  4. Kopyalama işlemi sonrasında Android Studio’yu tekrar başlatarak projelerini açabilirsiniz.

Eclipse İçin Swing Kurulumu

Merhabalar, Eclipse için Swing eklentisinin kurulumunu inceleyeceğiz.

  1. İnternet tarayıcınızdan Eclipse WindowsBuilder Pro kurulum sayfasına gidin.
  2. Eclipse versiyonunuza uygun “Release Version” kolonunun altından bulunan “Updated Site” kolonu içerisinde yer alan “link” bağlantısına tıklayın.
    Eğer Eclipse versiyonunuzu bilmiyorsanız Eclipse üzerinden Help -> About Eclipse adımlarını takip edip versiyonunuzu görebilirsiniz.
  3. Açılan bağlantının linkini kopyalayıp Eclipse’i açın.
  4. Help -> Install New Software adımlarını takip edin.
  5. Açılan pencerede “Add” butonuna basıp,
    Name: Swing Windows Builder
    Location: Kopyaladığınız link
    olacak şekilde düzenleyin.
    Örnek:
  6. Arama sonucunda çıkan tüm elemanları seçip “Next” butonuna basarak kurulum işlemini başlatabilirsiniz.
  7. Kurulum tamamlandıktan sonra Eclipse’i yeniden başlatarak kullanıma hazır hale gelir.

Oracle WebLogic Server Parola Sıfırlama

Merhabalar, WebLogic Server parolasını sıfırlamak istediğimiz durumlarda aşağıdaki adımları takip edebilirsiniz:

    1. Tüm servisleri kapatın.
    2. Konsoldan [server konumu]\user_projects\domains\bifoundation_domain\bin klasörünün bulunduğu konuma erişin.
    3. İşletim sisteminize uygun “setDomainEnv” dosyanızı çalıştırın.
      Windows için: setDomainEnv.cmd
      Linux için: . setDomainEnv.sh
    4. Konsoldan [server konumu]\user_projects\domains\bifoundation_domain\security klasörünün bulunduğu konuma erişin.
    5. İşletim sisteminize uygun yedek dosya taşıma işlemini gerçekleştirin.
      Windows için:
      mv DefaultAuthenticatorInit.ldift DefaultAuthenticatorInit_old.ldift
      Linux için:
      mv DefaultAuthenticatorInit.ldift DefaultAuthenticatorInit_old.ldift
    6. Konsoldan “java weblogic.security.utils.AdminAccount yenikullaniciadi yeniparola .” şeklinde olacak şekilde ilk parametre kullancı adı, ikinci parametre ise parola olacak şekilde çalıştırın. Bunları yazdıktan sonra boşluk bırakıp nokta (” .”) koymayı unutmayın.
      Örnek: java weblogic.security.utils.AdminAccount akif akif1234 .
    7. Konsoldan [server konumu]\user_projects\domains\bifoundation_domain\servers\AdminServer\security konumunuza erişin.
      Windows için: cd [server konumu]\user_projects\domains\bifoundation_domain\servers\AdminServer\security\
    8. “boot.properties” dosyasına oluşturduğunuz kullanıcı adı ve şifreyi ekleme işlemini gerçekleştirin. Server’da bulunan tüm Domain’ler için uygulayın.
      password=akif
      username=akif1234
      Sunucuyu ilk başlatmanızda parolanız şifrelenecektir.
    9. WebLogic Yönetici sunucusu başlatıldığında yeniden oluşturulacağı için önceki ayarlarınızı adını değiştirin veya silin.
      Örnek olarak: rename [server konumu]\user_projects\domains\bifoundation_domain\servers\AdminServer\data\ldap [server konumu]\user_projects\domains\bifoundation_domain\servers\AdminServer\data\ldap_eski
    10. Konsoldan [server konumu]\user_projects\domains\bifoundation_domain\bin klasörüne erişip işletim sisteminize ait Server’ı başlatma komutunu çalıştırın.
      Windows için: startWebLogic.cmd
      Linux için: ./ startWebLogic.sh

Oluşturduğunuz yeni kullanıcı adı ve şifrenizle Oracle WebLogic Server Console’a giriş yapabilirsiniz.

AngularJS $scope Nedir?

Scope, AngularJS için MVC gibi yazılım mimarilerindeki Controller ile View arasındaki bağlantımızdır diyebiliriz. Controller ile View arasında veri aktarımı veya Controller kısmında bulunan fonksiyonu tetiklememizi sağlamaktadır.

Bir örnek üzerinde incelersek:

<!DOCTYPE html>
<html lang="en" ng-app="MyApp">
<head>
	<meta charset="UTF-8">
	<title>AngularJS - Scope</title>
    <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.min.js"></script>
 	
 	<script>
		var MyApp = angular.module("MyApp", []);
		   
		MyApp.controller("MyAppController", function($scope) {
		    $scope.name = "Akif";
		    $scope.job = "Developer";
		});
	</script>
</head>
<body>

	<div ng-controller = "MyAppController">
		<p>{{name}} - {{job}} </p>     
 	</div>

</body>
</html>

Örnek üzerinde kolay görülebilmesi için inline Javascript kullandım. Controller üzerindeki veri taşıma işlemini $scope ile gerçekleştirdik.

AngularJS Direktifleri (Directive)

Bu yazımızda AngularJS direktiflerini tanımlayıp kullanım alanlarını inceleyeceğiz.

    • ng-app: Bir önceki yazımızda açıkladığımız gibi AngularJS’in etki alanını belirlemek için kullanılır. Örnekte bütün sayfanın değil de sayfa içerisinde bulunan bir div’in etkilenmesi durumunu incelersek:
<!DOCTYPE html>
<html lang="en">
<head>
	<title> AngularJS - Directive</title>
</head>
<body>



<div ng-app>
	...
</div>


</body>
</html>
  • ng-bind:  {{ value }} şeklinde kullanımının aynısıdır. Verilen değeri Bind eder.

<div ng-app>
		
	
<li ng-bind="6 + 1"></li>

</div>

  • ng-model: Form elemanlarında oluşan değişiklikleri incelemek için kullanılır.

External Javascript dosyası oluşturup aşağıdaki gibi düzenleyelim:

Project.controller('MainController', function($scope){
	$scope.user= {
		name: "",
		password: ""
	};

	$scope.login = function (user) {
		if (user.name == "") {
			alert("Kullanıcı adı boş olamaz.");
		} else if (user.password == "") {
			alert("Kullanıcı şifresi boş olamaz.");
		} else {
			alert("Alanlar dolduruldu.");
		}
	};
})

HTML sayfasını da aşağıdaki gibi düzenleyip çalıştırıp değişiklik durumunu inceleyelim.

Username: <input type="text" ng-model="user.name"> 
Password: <input type="password" ng-model="user.password"> 
<button ng-click="login(user)">Login</button>

JS dosyasında username ve password’ün ilk değerler verilerek undefined hatası engellenmiştir.

AngularJS Nedir?

AngularJS, Google tarafından desteklenen güçlü bir JavaScript framework’üdür. HTML DOM’u ek niteliklerle genişletir ve daha duyarlı hale getirir. AngularJS açık kaynak kodlu, tamamen ücretsizdir.

Basit bir örnek ile AngularJS’e giriş yapalım.
index.html dosyası oluşturup angular.min.js‘i dahil edelim.

<!DOCTYPE html>
<html lang="en" ng-app>
<head>
	<meta charset="UTF-8">
	<title>AngularJS - İlk Uygulama</title>
	<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.5/angular.min.js"></script>
</head>
<body>
	{{ 6 + 1 }}
</body>
</html>

ng-app ile AngularJS’in etki alanını belirliyoruz. Etki alanını belirlememe durumunda çıktıyı String olarak alacaktık.

Windows 10 IoT Kurulumu

Merhaba,

Bu yazımda Raspberry Pi 3 üzerine Windows 10 IoT kurulumu gerçekleştireceğiz.

Öncelikle developer.microsoft.com/en-us/windows/iot/GetStarted adresinden kurulum yapacağımız cihazı, yükleme ortamını ve ardından işletim sistemi versiyonunu seçmemizi istenmektedir.
Okumaya devam et Windows 10 IoT Kurulumu

Android İnternet Bağlantısı Kontrolü

Bu yazımızda Android uygulamamızdan internet bağlantısının olup olmadığını kontrol ettireceğiz.

Anlatımı developer.android üzerinde anlatılan yöntemle güncelleyerek aktaracağım.

İnternet bağlantısını kontrol eden fonksiyonumuzu yazalım:

public boolean internetBaglantisiniKontrolEt() {
    ConnectivityManager cm =
            (ConnectivityManager) getBaseContext().getSystemService(Context.CONNECTIVITY_SERVICE);

    NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
    boolean isConnected = activeNetwork != null &amp;&amp;
            activeNetwork.isConnectedOrConnecting();

    return isConnected;
}

AndroidManifest’te gerekli izinleri ekleyelim:

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

Sonucu uygulama açılırken ekrana bastıralım:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Toast.makeText(getApplicationContext(), "Sonuc: " + internetBaglantisiniKontrolEt(),Toast.LENGTH_LONG).show();
    }

Ayrıca bağlantı türünü öğrenmek isterseniz şu şekilde kontrol edebiliriz:

boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;